我有一个模型,我们称之为X,它有一个ManyToManyField
,可以列出任意数量的用户。在管理界面(可以创建这些X对象的唯一位置)中,我想根据它们是否处于活动状态(is_active=True
)来过滤所有可能的用户。 X的旧实例可以拥有非活动用户,这很好。它只是X的新实例,无法添加非活动用户。
我该怎么做?
答案 0 :(得分:2)
最简单的方法是在管理类中使用自定义form
。在那里,您可以设置queryset
的ModelMultipleChoiceField
参数:
# forms.py
class XForm(forms.ModelForm):
# or whatever the name of the ManyToManyField is
users = forms.ModelMultipleChoiceField(queryset=User.objects.filter(is_active=True))
class Meta:
model = X
fields = '__all__'
# admin.py
class XAdmin(ModelAdmin):
form = XForm
site.register(X, XAdmin)