Django过滤管理员下拉列表

时间:2013-06-25 15:11:08

标签: django filtering admin

似乎这个问题已被多次回答,但我是Django的新手,当我试图解决我一直在寻找的答案时,显然遗漏了一些东西。我有2个模型,模型A是主模型,并且有模型B的外键。当我在Django Admin中创建一个新的模型A时,我想要下拉选择模型B只显示模型B的模型尚未被分配给模型A.任何人都可以指出正确的方式吗?

1 个答案:

答案 0 :(得分:0)

您需要provide a custom form向管理员发送信息,并告知only show a certain queryset模型B字段:

from django import forms
from django.contrib import admin
from myapp.models import Person

class ModelAForm(forms.ModelForm):

    model_b = ModelChoiceField(
        queryset=ModelB.objects.exclude(model_a__isnull=False))

    class Meta:
        model = ModelA

class ModelAAdmin(admin.ModelAdmin):
    form = ModelAForm