所以我有一个包含以下列的用户模型:
username = models.CharField(db_column='Username',max_length=32,unique=True)
email = models.CharField(db_column='Email',max_length=255)
password = models.CharField(db_column='Password',max_length=128)
prosthodontist = models.ForeignKey('Prosthodontist',on_delete=models.SET_NULL,null=True)
我试图做一个下拉菜单,允许用户通过django表单改变他们的Prosthodontist值。它不能是一个静态列表,因为它必须总是包含每个可用的prosthodonist,因为它们被添加。
只是为了展示这是我到目前为止在形式的行:
class ChangeProsthodontistForm(forms.ModelForm):
class Meta:
model = User
fields = ('prosthodontist',)
prosthodontist = forms.ChoiceField(
label = "Prosthodontist",
widget = forms.Select(
attrs={
'id':'prosthodontist',
},
),
choices=()
)
请帮我解决这个问题,因为我真的很困惑,我觉得我可以用for循环来迭代条目,但我觉得必须有一个更好的方法通过Django。
你的答案是ModelChoiceField
。
prosthodontist = forms.ModelChoiceField(
# ...
queryset = Prosthodontist.objects.all(),
# ...
)