当选择框中有很多内容时,很难使用默认的django 1.0.2 ManyToManyField小部件(多选)。是否有另一个小部件可用于在textarea中以逗号分隔的id列表?如果这不可用,我需要做什么才能编写一个,并将它显示在ModelForm.as_p()和管理站点中?
答案 0 :(得分:2)
如果没有现成的小工具可以做你想要的(而且我认为没有),那么你需要自己编写。不幸的是,Django文档没有向您展示如何执行此操作,但通过查看复制现有窗口小部件并修改它的源代码forms/widgets.py
并不难理解。
答案 1 :(得分:2)
我认为在manytomanyfield上设置raw_id_fields实际上会输出一个带有逗号分隔的id列表的TextInput小部件。 您可以在相应的ModelForm中的admin.py中覆盖它,并在其上强制使用TextArea小部件。
答案 2 :(得分:1)
在管理员中,您可以使用过滤水平和/或过滤垂直:
class MyModelAdmin(admin.ModelAdmin):
filter_horizontal = ['many_to_many_field_name']
filter_horizontal = ['another_many_to_many_field_name']