我正在尝试将外键选项添加到选择输入,但不知道如何获取。我想与使用 Django 生成的表单相同,但使用我自己的 HTML。 该表单用于创建一个新的“患者”。
这是我的患者模型中的外键:
ubication = models.ForeignKey(Ubication, on_delete=models.CASCADE)
supervisor = models.ForeignKey(User, on_delete=models.SET_NULL, null=True)
这是病人表格:
class PatientForm(forms.ModelForm):
class Meta:
model = Patient
fields = ['dni', 'first_name', 'last_name', 'birth', 'risk', 'status', 'ubication', 'supervisor']
widgets = {
'dni': forms.NumberInput(attrs={'class': 'form-control'}),
'first_name': forms.TextInput(attrs={'class': 'form-control'}),
'last_name': forms.TextInput(attrs={'class': 'form-control'}),
'birth': forms.DateInput(attrs={'class': 'form-control'}),
'risk': forms.CheckboxInput(attrs={'class': 'form-control'}),
'status': forms.Select(attrs={'class': 'form-select'}),
'ubication': forms.Select(attrs={'class': 'form-select'}),
'supervisor': forms.Select(attrs={'class': 'form-select'})
}
例如,这里我想从主管模型中添加主管以将其连接到患者模型:
<select class="form-select" aria-label="Default select example" required name="supervisor" id="id_supervisor">
<option selected>Select supervisor</option>
{% for f in form.supervisor %}
<option value="{{f.id}}">{{f.first_name}}</option>
{% endfor %}
</select>
答案 0 :(得分:0)
我相信您想制作选择字段,让用户根据可用的主管之一选择主管,对吗?
您可以在表单脚本中创建选项。
在 PatientForm
上执行以下操作:
# SUPERVISORS is the model where the supervisors are stored in your code
# you will have to modify it
from .models import SUPERVISORS
CHOICES = [ (supervisor.id, supervisor.get_full_name())
for supervisor in SUPERVISORS.objects.all() ]
class PatientForm(forms.ModelForm):
supervisor = forms.ChoiceField(choices=CHOICES)
class Meta:
# leave the rest as is
如果您想对此进行调整,您可以获得更多信息 here。