Django 不同的ManyToManyField小部件

Django 不同的ManyToManyField小部件,django,django-models,django-forms,Django,Django Models,Django Forms,默认的django 1.0.2 ManyToManyField小部件(多选)在选择框中有很多内容时很难使用。是否有另一个小部件在文本区域中提供以逗号分隔的id列表?如果这不可用,我需要做什么来编写一个,并将其显示在ModelForm.as_p()和管理站点中?在管理中,您可以使用水平过滤和/或垂直过滤: class MyModelAdmin(admin.ModelAdmin): filter_horizontal = ['many_to_many_field_name'] fil

默认的django 1.0.2 ManyToManyField小部件(多选)在选择框中有很多内容时很难使用。是否有另一个小部件在文本区域中提供以逗号分隔的id列表?如果这不可用,我需要做什么来编写一个,并将其显示在ModelForm.as_p()和管理站点中?

在管理中,您可以使用水平过滤和/或垂直过滤

class MyModelAdmin(admin.ModelAdmin):
    filter_horizontal = ['many_to_many_field_name']
    filter_horizontal = ['another_many_to_many_field_name']

在管理中,您可以使用水平过滤器和/或垂直过滤器:

class MyModelAdmin(admin.ModelAdmin):
    filter_horizontal = ['many_to_many_field_name']
    filter_horizontal = ['another_many_to_many_field_name']

如果没有现成的小部件可以满足您的需要(我认为没有),那么您需要编写自己的小部件。不幸的是,Django文档没有向您展示如何做到这一点,但是通过查看源代码
forms/widgets.py
复制并修改现有的小部件并不难理解。

如果没有任何现有的小部件可以做您想要的事情(我认为没有),那么您就需要编写自己的小部件。不幸的是,Django文档没有告诉您如何做到这一点,但是通过查看源代码
forms/widgets.py
复制并修改现有的小部件并不难理解。

我相信在manytomanyfield上设置raw\u id\u字段实际上会输出一个带有逗号分隔的id列表的TextInput小部件。
您可以在admin.py中,在相应的ModelForm中覆盖它,并在其上强制一个TextArea小部件。

我相信在manytomanyfield上设置raw\u id\u字段实际上会输出一个带有逗号分隔的id列表的TextInput小部件。
您可以在admin.py中,在相应的ModelForm中覆盖它,并在其上强制一个TextArea小部件。

谢谢,但这是更多的相同之处。这让我想到了ManyToManyRawidget,它最接近我想要使用的东西。我想我将从manyToManyRawidget开始,作为构建我所需要的东西的基础。谢谢,但更多的是相同的。这让我想到了ManyToManyRawidget,它最接近我想要使用的东西。我想我会从ManyToManyRawIdWidget开始,以此为基础来构建我需要的东西。令人失望的是,没有任何东西在那里,这很接近:令人失望的是,没有任何东西在那里,这很接近:看起来这只适用于管理应用程序。谢谢,但对这个问题没有帮助。看起来这只适用于管理应用程序。谢谢,但对这个问题没有帮助。