【问题标题】:Django - Make a related queryset for a set of foreignkeysDjango - 为一组外键创建一个相关的查询集
【发布时间】:2016-12-22 15:04:30
【问题描述】:

您好,我正在尝试编写一个视图,以便显示与账单相关的所有项目。我该如何编写查询? bills 查询返回一个 QuerySet[bill1, bill2]。以为我可以获得相关的查询集,所以我可以访问账单的每一项。

如果我现在在我的 HTML 中执行一个 for 循环,我将列出两份账单的所有项目,而不是与它们相关的项目。

models.py 看起来像这样:

class Bill(models.Model):
    event = models.ForeignKey(Event)
    customer = models.ForeignKey(Team)
    date = models.DateField()

class Item(models.Model):
    bill = models.ForeignKey(Bill)
    registration = models.OneToOneField(Registration, unique=True)

我写了一个视图:

def payments(request):
    customer = Team.objects.get(owner=request.user) # Gets the right user
    bills = customer.bill_set.all()                 # Query all bills of the user

    items = bills.item_set.all()     # Tried but doesnt work

    context = {'bills': bills,
               'items': items,
               'customer': customer,}
    return render(request, 'payment/payments.html', context)

【问题讨论】:

    标签: django-views django-queryset


    【解决方案1】:

    您可以使用in field lookup。代码就是这么简单:

    items = Item.objects.filter(bill__in=bills)
    

    bills 是您的 Bill 查询集。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-18
      • 1970-01-01
      • 2016-07-30
      • 2019-06-12
      • 1970-01-01
      • 2019-07-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多