创建一个表单,从DB中的表中提取选项,然后允许用户更改为不同的外键



所以我有一个包含以下列的用户模型:

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(),
# ...
)

相关内容

最新更新