制作一个表格,从数据库中的 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(),
# ...
)
所以我有一个包含以下列的用户模型:
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(),
# ...
)