如何在 Django 模板中将外键字段显示为选择字段
How to display a ForeignKey field as a selection field in django template
我需要在 Django 模板中显示一个 foreignKey 字段作为选择字段,这会将所有可用记录显示为下拉列表。考虑到每次选择字段都要查询数据库的情况,从ForeignKey字段中选择字段是实现上述目标的最佳方法。
您应该使用第一个视图来获取外键字段并将其传递给上下文字典。到模板。
里面Views.py
DEPENDENT_FILED = DB.OBJECT.ALL() // field which has all the drop-down values.
FR_FIELD = DB.OBJECT.GET(DB_OBJ_HAVING_FR) // selected drop-down from template
context['FR_FIELD'] = FR_FIELD
里面example.html
{% if FR_FIELD %}
<select name="dropdown_field">
{%for fr_key in DEPENDENT_FILED %}
<option value="{{fr_key.field_name}}" {% if fr_key.field_name = FR_FIELD|add:0 %}selected{% endif %}>{{fr_key.option_name}}</option>
{% endfor %}
</select>
使用ModelChoiceField
https://docs.djangoproject.com/en/1.10/ref/forms/fields/#django.forms.ModelChoiceField
class MyForm(forms.ModelForm):
myfield = forms.ModelChoiceField(queryset=...)
我需要在 Django 模板中显示一个 foreignKey 字段作为选择字段,这会将所有可用记录显示为下拉列表。考虑到每次选择字段都要查询数据库的情况,从ForeignKey字段中选择字段是实现上述目标的最佳方法。
您应该使用第一个视图来获取外键字段并将其传递给上下文字典。到模板。
里面Views.py
DEPENDENT_FILED = DB.OBJECT.ALL() // field which has all the drop-down values.
FR_FIELD = DB.OBJECT.GET(DB_OBJ_HAVING_FR) // selected drop-down from template
context['FR_FIELD'] = FR_FIELD
里面example.html
{% if FR_FIELD %}
<select name="dropdown_field">
{%for fr_key in DEPENDENT_FILED %}
<option value="{{fr_key.field_name}}" {% if fr_key.field_name = FR_FIELD|add:0 %}selected{% endif %}>{{fr_key.option_name}}</option>
{% endfor %}
</select>
使用ModelChoiceField
https://docs.djangoproject.com/en/1.10/ref/forms/fields/#django.forms.ModelChoiceField
class MyForm(forms.ModelForm):
myfield = forms.ModelChoiceField(queryset=...)