【发布时间】:2016-06-12 17:37:44
【问题描述】:
我想做的是用模型表中一列的不同值填充select 元素。
我的表单.py:
class ExampleForm(forms.ModelForm):
only_unique_values = forms.ModelChoiceField(
required = False,
queryset = ReadOnlyTable.objects.values('pie').distinct(),
widget = forms.Select
)
使用values 函数返回ValuesQuerySet 而不是QuerySet,这对我的select 元素来说是个问题,因为所有选项都使用字典语法作为值填充,而不仅仅是列数据作为strings.
它最终看起来像这样:
<select id="id_example" name="example_form">
<option value="" selected="selected">---------</option>
<option value="{'pie': u'apple '}">{'pie': u'apple '}</option>
<option value="{'pie': u'pecan '}">{'pie': u'pecan '}</option>
<option value="{'pie': u'dutch '}">{'pie': u'dutch '}</option>
<option value="{'pie': u'pumpkin '}">{'pie': u'pumpkin '}</option>
</select>
我希望它看起来像这样:
<select id="id_example" name="example_form">
<option value="" selected="selected">---------</option>
<option value="apple">apple</option>
<option value="pecan">pecan</option>
<option value="dutch">dutch</option>
<option value="pumpkin">pumpkin</option>
</select>
如何从我的模型上的 distinct() 调用返回 string 值?
【问题讨论】:
-
你在使用 postgresql 吗?如果是这样,您总是可以这样做 ...objects.all().distinct('pie')
-
@Obj3ctiv3_C_88 不,SQL Server。