Django 显示 ID 和描述从查询集表单到下拉列表
Django Display ID and Description From Queryset Form into Dropdown
我想将 table 中的数据显示到 Django 查询集表单中,并正确显示下拉控件的值和文本。
表单编码:
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 %}
我想将 table 中的数据显示到 Django 查询集表单中,并正确显示下拉控件的值和文本。
表单编码:
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 %}