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