我有一个 Item 模型,还有一个带有 Items 和 Users 的 manyToOne(每个用户有多个项目)。我想查询项目但不会两次获得同一用户的任何项目。例如,如果我的用户有元素:
John
iPhone
macbook
mousepad
Elaine
PC
Battery
Jane
TV
Cabinet
我想进行项目查询并取回 iPhone、PC、TV 或 macbook、PC、Cabinet 或任何组合,只要每个项目都有唯一的用户。有没有办法用 django 和 SQL 做到这一点?还是我必须在 python 级别上执行此操作?也许是这样的:
items = Item.objects.all()
items = items.filter(user__isunique=True) #This doesn't work. I tried it.
最佳答案
你需要
Item.objects.filter(your_filter).distinct('user') #or Item.objects.distinct('user')
如果你的模型是这样的:
class Item(models.Model):
user = models.ForeignKey(User)
# ...
但如果你想要小心 order_by with distinct
关于python - Django 查询具有唯一字段的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27671437/