我想要一个带有来自查询集的值的列表,该列表仅出现一次。
我看了这篇文章,但这似乎对我不起作用。
例子:
CharacterJournal.objects.order_by("date").values_list("reftypeid", flat=True).distinct()
返回如下内容:
[97, 96, 97, 97, 97, 97, 97, 97, 42, 42, 42, 52, 42, 42, 1, 42, '...(remaining elements truncated)...']
请帮忙。
请参阅distinct
[ 1 ]上的文档中的注释:
order_by()调用中使用的任何字段都包含在SQL SELECT列中。当与distinct()结合使用时,有时可能会导致意外结果。如果按相关模型中的字段排序,则这些字段将添加到选定的列中,否则它们可能使重复的行看起来是不同的。由于多余的列不会出现在返回的结果中(它们仅在此处用于支持排序),因此有时看起来好像正在返回不明显的结果。
同样,如果使用values()查询限制所选的列,则仍将涉及在任何order_by()(或默认模型排序)中使用的列,并且可能会影响结果的唯一性。
换句话说,由于您按进行排序date
,因此查询返回的对,(date, reftypeid)
并且DISTINCT
子句在该对上执行。在date
随后下降,因为values_list
,但没有额外的去除重复的reftypeid
条目。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句