Django将ID和描述从Queryset Form显示到Dropdown中



我想将表中的数据显示到Django Queryset Form中,并正确显示下拉控件的值和文本。

表单编码:

self.fields['testing_field'].queryset = model_abc.objects.all().values_list('description', flat=True)

结果描述也是有价值的:

<select name="cars" id="cars">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select>

结果预期可以将id设置为具有现有描述的值:

<select name="cars" id="cars">
<option value="1">Volvo</option>
<option value="2">Saab</option>
<option value="3">Mercedes</option>
<option value="4">Audi</option>
</select>

如何在Django QuerySet的下拉表单中将id设置为值?

您需要获取对象的描述和pk。这很简单:

possibles = model_abc.objects.all().values_list('pk', 'description')

您可以将其转换为动态选择:

choices = ( (x['pk'], x['description']) for x in possibles )

或者,您可以在模板中迭代可能的内容

{% for option in possibles %}
<option value="{{option.pk}}">{{option.description}}</option>
{% endfor %}

最新更新