django admin:显示已过滤的项目列表

时间:2011-04-18 17:00:28

标签: python django

正在使用django管理界面,我有一个具有外键的模型。在该字段中,在查看管理页面时会显示下拉菜单。有没有办法只在is_active = 1的情况下过滤下拉结果?

此致

2 个答案:

答案 0 :(得分:2)

limit_choices_to就是你的目标。

如果您只想在ModelAdmin中进行有限的选择,则应相应地调整ModelForm

这样的事情应该这样做:

class YourAdminForm(forms.ModelForm):

    class Meta:
        model = YourModel

    def __init__(self, *args, **kwargs):
        super(YourAdminForm, self).__init__(*args, **kwargs)
        qs = self.fields['your_fk_field'].queryset
        self.fields['your_fk_field'].queryset = qs.filter(is_active=1) 

答案 1 :(得分:0)

根据docs

mmmagic

如果您需要访问当前对象,请检查此How do I get the actual object id in a Django admin page (inside formfield_for_foreignkey)?