【发布时间】:2011-11-18 11:15:44
【问题描述】:
编辑
我有几条具有相同字段值的记录。我需要过滤查询集以获取模型实例包含唯一字段记录,而不仅仅是查询集中的值。 如何过滤查询集以保持实例只包含一个字段的唯一值?
>>> dist = Language.objects.distinct()
>>> for i in dist:
>>> print i.language
>>> English
>>> English
>>> dist = Language.objects.values('language').distinct()
>>> for i in dist:
>>> print i['language']
>>> English
【问题讨论】:
-
嗯...为什么
Language模型的“语言”字段中有重复项?更重要的是,如果您有 N 个Language具有相同的“语言”,那么在不同的结果中您需要哪一个? -
Model.object.all()已返回唯一实例。只有当您开始将多个模型组合到一个查询中时,您可能会得到重复。不过,它们仍然是唯一的 Python 对象实例。 -
哦,我明白了。我重新提出了这个问题。
-
@BéresBotond,您的第一个问题的答案太长)抱歉。我不在乎将获得哪个实例,重要的是没有重复。