【问题标题】:Get list of Unique many-to-many records from a queryset从查询集中获取唯一的多对多记录列表
【发布时间】:2011-03-01 11:33:28
【问题描述】:

我的模型:

class Order(models.Model):
    ordered_by = models.ForeignKey(User)
    reasons = models.ManyToManyField(Reason)
class Reason(models.Model):
    description = models.CharField()

基本上,用户创建一个订单并给出该订单的原因。即,john 有两个订单(一个是铅笔订单,因为他不在,另一个是因为他不喜欢他目前的库存。第二个订单是钢笔,因为他不在了)。

我想打印一份用户下订单的所有原因的列表。所以在 john 下,应该打印“he is out”、“he doesn't like his current stock”;只有这两行。如果我简单地选择 john 的所有订单,遍历它们并打印出他们的“原因”,它会打印“he is out”、“he doesn't like his current stock”,然后再次打印“he is out”。我不想要这些重复的值。

如何选择他所有订单的原因列表,以便该列表包含所有唯一行?

【问题讨论】:

    标签: django django-models django-templates


    【解决方案1】:
    Reason.objects.filter(order__ordered_by=john).distinct()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-14
      • 2020-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-01
      • 1970-01-01
      相关资源
      最近更新 更多