制作一个表格,从数据库中的 table 中提取选择,然后允许用户更改为不同的外键

Make a form that pulls choices from table in DB and then allows user to change to different foreign keys

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

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 值。它不能是一个静态列表,因为它必须在添加每个可用的 Prosthodontist 时始终包含它们。

只是为了展示,这是我到目前为止的表格:

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