The default django 1.0.2 ManyToManyField widget (a multi-select) is difficult to use when there are a lot of things in the select box. 是否有另一个可用的小部件在文本区域中提供逗号分隔的 id 列表?如果这不可用,我需要做什么来编写一个,并让它显示在 ModelForm.as_p() 和管理站点中?
问问题
2477 次
3 回答
2
如果没有现有的小部件可以满足您的需求(而且我认为没有),那么您需要编写自己的小部件。不幸的是,Django 文档没有向您展示如何执行此操作,但通过查看源代码forms/widgets.py
复制现有小部件并对其进行修改并不难弄清楚。
于 2009-04-19T19:57:56.990 回答
2
我相信在 manytomanyfield 上设置 raw_id_fields 实际上会输出一个带有逗号分隔的 id 列表的 TextInput 小部件。您可以在 admin.py 中的相应 ModelForm 中覆盖它,并在其上强制使用 TextArea 小部件。
于 2009-06-19T16:50:44.623 回答
1
在管理员中,您可以使用 过滤器水平和/或过滤器垂直:
class MyModelAdmin(admin.ModelAdmin):
filter_horizontal = ['many_to_many_field_name']
filter_horizontal = ['another_many_to_many_field_name']
于 2009-04-19T12:29:44.323 回答