我的模型:
class Order(models.Model):
ordered_by = models.ForeignKey(User)
reasons = models.ManyToManyField(Reason)
class Reason(models.Model):
description = models.CharField()
基本上,用户创建一个订单并给出该订单的原因。即,约翰有两个订单(一个是铅笔,因为他不在,而且因为他不喜欢他目前的库存。第二个订单是钢笔,因为他不在)。
我想打印一个用户下订单的所有原因的列表。所以在 john 下,它应该打印“他出局了”、“他不喜欢他当前的股票”;只有那两行。如果我只是选择 john 的所有订单,遍历它们并打印出他们的“原因”,它将再次打印“他出局”、“他不喜欢他当前的库存”,然后再次打印出“他出局”。我不想要这些重复的值。
我如何选择他所有订单的原因列表,以便该列表包含所有唯一行?
最佳答案
Reason.objects.filter(order__ordered_by=john).distinct()
关于django - 从查询集中获取唯一多对多记录的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3002902/