0
我有一個模型,我們稱之爲X,其中有一個ManyToManyField
,可以列出任意數量的用戶。在管理界面(唯一可以創建這些X對象的地方)中,我想通過它們是否處於活動狀態(is_active=True
)來過濾所有可能的用戶。 X的舊實例可以有非活動用戶,這很好。這只是X的新實例,不能添加非活動用戶。篩選所有用戶在管理界面中僅顯示活動的用戶
我該怎麼做?
我有一個模型,我們稱之爲X,其中有一個ManyToManyField
,可以列出任意數量的用戶。在管理界面(唯一可以創建這些X對象的地方)中,我想通過它們是否處於活動狀態(is_active=True
)來過濾所有可能的用戶。 X的舊實例可以有非活動用戶,這很好。這只是X的新實例,不能添加非活動用戶。篩選所有用戶在管理界面中僅顯示活動的用戶
我該怎麼做?
最簡單的方法就是在管理員類中使用自定義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)
這是簡單得多,比我期待。非常感謝。 – Sardathrion