为什么QuerySet会返回除String值列表之外的任何内容?

时间:2016-01-02 22:51:11

标签: django django-forms

我现在已经使用QuerySets两天了,而且有一些我想要更好理解的内容。

QuerySet返回Objects非常方便,我有机会欣赏它。

我不明白为什么它没有为您提供返回字符串值列表的选项。

例如:我需要从我的表type中选择一个不同的(唯一的)Property。我可以通过几种方式做到这一点:

Property.objects.values('type').order_by().distinct()
  

[{' type&#39 ;: u' Flat'},{' type&#39 ;: u' House'},{' type& #39;:你'别墅'}]

Property.objects.values_list('type').order_by().distinct()
  

[(你' Flat',),(你' House',),(你' Villa',)]

在这两种情况下都有Unicode值字典或带有Unicode值的元组0_o

如何指定将返回字符串值列表的QuerySet?

P.S。我们可以将QuerySet的结果转换为字符串列表,但结果不再是QuerySet。

P.P.S。我需要为我的ModelChoiceField,我将解释为什么我需要它,如果需要的话。

1 个答案:

答案 0 :(得分:2)

您可以使用flat=True传递给values_list来获得一个完整的字符串列表。

Property.objects.values_list('type', flat=True).order_by().distinct()