为什么 QuerySet returns 不是字符串值列表?

Why QuerySet returns anything but the list of String values?

我已经玩了两天 QuerySets 了,有一些我想更好地理解的东西。

QuerySet returns 对象非常方便,我有机会欣赏它。

我不明白的是为什么它不给你 return 字符串值列表的选项。

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

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

[{'type': u'Flat'}, {'type': u'House'}, {'type': u'Villa'}]

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

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

在这两种情况下,要么有一个 Unicode 值的字典,要么有一个具有 Unicode 值的元组 0_o

如何指定将 return 字符串值列表的查询集?

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

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

您可以使用传递 flat=Truevalues_list 来获得一个简单的字符串列表。

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