我想将表中的数据显示到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 %}