Django的distinct()不返回不同的值

时间:2018-08-24 23:01:49

标签: django django-queryset distinct

我有一个Session模型,如下所示:

class Session(models.Model):  
    user = models.ForeignKey(User, null=True, blank=True, on_delete=models.CASCADE, related_name="sessions")
    flavor = models.ForeignKey(Flavor, null=True, blank=True, on_delete=models.CASCADE, related_name="sessions")
    ....

我正在尝试运行查询:

sessions = Session.objects.all().values('flavor__pk', 'user__pk').distinct()

但是当我随后打印会话对象时,我得到了:

<QuerySet [{'user__pk': 14544, 'flavor__pk': 1}, {'user__pk': 14544, 'flavor__pk': 1}, {'user__pk': None, 'flavor__pk': 30}, {'user__pk': 193, 'flavor__pk': 30}, '...(remaining elements truncated)...']>

如果仔细观察,前两个条目将完全相同{'user__pk': 14544, 'flavor__pk': 1}!这不应该与众不同吗?

1 个答案:

答案 0 :(得分:-1)

我认为这段代码有效:

Session.objects.all().values_list('flavor__pk', 'user__pk').distinct()
相关问题