Django查询具有唯一字段的项目

时间:2014-12-27 21:03:25

标签: python django postgresql

我有一个Item模型,并且有一个包含Items和Users的manyToOne(每个用户有多个项目)。我想对项目进行查询,但不能两次获得同一用户的任何项目。例如,如果我有用户的项目:

John
  iPhone
  macbook
  mousepad

Elaine
  PC
  Battery

Jane
  TV
  Cabinet

我想进行商品查询并获取iPhone,PC,电视或macbook,PC,Cabinet或任何组合,只要每个商品都有一个独特的用户。有没有办法用django和SQL做到这一点?或者我必须在python级别执行此操作?也许是这样的:

items = Item.objects.all()
items = items.filter(user__isunique=True) #This doesn't work. I tried it.

1 个答案:

答案 0 :(得分:0)

你需要

Item.objects.filter(your_filter).distinct('user') #or Item.objects.distinct('user')

如果您的模型是这样的:

class Item(models.Model):
   user = models.ForeignKey(User)
   # ...

如果你想要order_by with distinct

,请小心