Django 在小部件中定义ModelMultipleEchoiceField的查询集

Django 在小部件中定义ModelMultipleEchoiceField的查询集,django,widget,admin,Django,Widget,Admin,我正在对大量对象使用modelmultipechoicefield。 我只想显示选定的对象,让用户用js删除一个选项。 要添加选项,用户将打开一个类似于ManyToManyRawidget的弹出窗口 我可以使用以下命令将查询集限制为表单的init中的选定选项: def __init__(self, *args, **kwargs): super(FormName, self).__init__(*args, **kwargs) self.fields['field

我正在对大量对象使用modelmultipechoicefield。 我只想显示选定的对象,让用户用js删除一个选项。 要添加选项,用户将打开一个类似于ManyToManyRawidget的弹出窗口

我可以使用以下命令将查询集限制为表单的init中的选定选项:

def __init__(self, *args, **kwargs):        
    super(FormName, self).__init__(*args, **kwargs)
    self.fields['field_name'].queryset = self.instance.field_name
但这需要在每个表单上进行手动设置。 是否可以扩展modelmultipechoicefield以从字段选项中获取查询集? 我认为我需要扩展ModelChoiceInterator,但无法理解如何访问模块实例


谢谢

我不确定这是否是您想要的,但是如果您想要与auth/user/permissions中相同的“列表穿梭”,您应该尝试一下

class MyForm(forms.ModelForm):
    myfield = forms.ModelMultipleChoiceField(
        queryset = Category.objects.all(),
        widget = admin.widgets.FilteredSelectMultiple(
                _('myfield'), False),
        required = False,
    )

class MyAdmin(admin.ModelAdmin):

   form = MyForm   

如果您想在admin应用程序之外使用它,您可以使用该小部件,但请确保在模板中导入admin Java脚本谢谢!我很难从Django医生那里弄明白这一点。