[英]Django filtering different parents in template
我在項目中考慮了評估模型,就像
class Evaluation(models.Model):
question = models.ForeignKey(Question)
value = models.IntegerField('Value')
creator = models.ForeignKey(User)
def __unicode__(self):
return unicode(self.value)
在我的模板中,我想在這樣的表中顯示不同的評估
| question1 | creator1 : evaluation of creator1
| creator2 : evaluation of creator2
-------------------------------------------------
| question2 | creator1 : evaluation of creator1
| creator2 : evaluation of creator2
...
為此,我必須區分查詢集中與問題相關的創建者。
不幸的是,我無法創建符合我想要的過濾器或分組。 如何根據引用的問題輕松選擇創建者及其評估?
您希望將{% regroup %}
模板{% regroup %}
( https://docs.djangoproject.com/en/1.6/ref/templates/builtins/#regroup )應用於按question
排序的Evaluation
question
,最好使用select_related()
(以避免N + 1查詢問題)
# views.py
def myview(request):
context = {
"evaluations":Evaluation.objects.order_by("question", "creator").select_related()
}
return render(request, "mytemplate.html", context)
和您的模板:
# mytemplate.html
{% regroup evaluations by question as questions_list %}
<ul>
{% for question in questions_list %}
<li>{{ question.grouper }}
<ul>
{% for evaluation in question.list %}
<li>{{ evaluation.creator }}: {{ evaluation }}
{% endfor %}
</ul>
</li>
{% endfor %}
</ul>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.