【发布时间】:2012-05-16 06:15:14
【问题描述】:
我一直在研究一些具有“后向”关系的模型。我开始想……如果我想过滤一些结果怎么办?
我有两个模型:
Model A:
name
image
date
Model B:
ForeignKey to Model A
name
date
要访问模型 A,我使用: p = A.objects.all().order_by('-date')
然后我将它传递给模板。
在模板中:
{% for n in model_a.all %}
{% for item in n.modelb_set.all %}
<li>{{item.name}}</li>
{% endfor %}
{% endfor %}
我得到了模型 A 的所有后向相关对象,这很好。
现在,如果我想从该查询中过滤一些结果怎么办?
我正在考虑在 View by 中进行迭代:
p = A.objects.all().order_by('-date')
for n in p:
for x in n.modelb_set.filter(date_lte=""):
ls = []
ls.append[x]
如何将它传递给模板并获得我之前得到的(未过滤的视图)但现在带有过滤结果的内容?
【问题讨论】:
-
这感觉就像你在混合表示和业务逻辑。最好实现一个封装它的管理器。您还可以遍历 B 的查询集并按 A 中的某些条件对其进行过滤
-
感谢您的回复,我会记住的:)
标签: django filter models relationship