Django - 为一组外键生成相关的查询集

时间:2016-12-22 15:04:30

标签: django-views django-queryset

您好我正在尝试写一个视图,以便我可以显示与比尔相关的所有项目。我如何编写查询?查询账单返回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)

1 个答案:

答案 0 :(得分:0)

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

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

billsBill查询集。