【发布时间】:2017-12-24 09:11:44
【问题描述】:
我正在使用 Django 创建一个网站。我想组合多个过滤结果(查询集)。
我的模特关系
'员工' 1:m '会员' 1:m 'PaymentHistory' 1:1 'RefundHistory'
我的观点.py:
wanted_refund = set()
for m in staff.members.all():
payment = m.PaymentHistory.filter(division="Membership")
for p in payment:
try:
refund = RefundHistory.objects.filter(payment=p).filter(refund_date__range=[this_month_start, date])
wanted_refund.add(refund)
except RefundHistory.DoesNotExist:
pass
context = {
'wanted_refund' : wanted_refund,}
return render(request, 'refund.html', context)
但是,使用过滤器不起作用。它只在我使用 'get' 时有效。
print(refund) 显示如下结果:
< QuerySet [] >
< QuerySet [] >
< QuerySet [] >
< QuerySet [< RefundHistory: RefundHistory object >] >
我只想使用具有对象的查询集,我想要的是模板中的以下查询集:
{% for refund in wanted_history %}
{{ refund.refund_date }}
{{ refund.refund_amount}}
{% endfor %}
如何在 for 循环中传递多个过滤器结果?
【问题讨论】:
-
您是否希望每次付款都加入该过滤器的结果?例如,在一个查询集中获取每笔付款的退款范围?
-
我希望每次付款都有现有的 RefundHistory 对象。我编辑了我的帖子。如何在一个查询集中获得结果?