在我的模板中,我想得到一个问题的所有答案的计数,其中Answer.Value =“YES”
我有两种模式:
class Question(models.Model):
question = models.CharField(max_length=100)
class Answer(models.Model):
question = models.ForeignKey(Question)
value = models.CharField(max_length=3)
我的观点:
def questn(request, question_id):
qobj = Question.objects.select_related().get(id="1")
return render(request, 'base.html', {'qobj': qobj})
我的模板(base.html):
{{ qobj.answer_set.count }} //returns total count of all answers
{{ qobj.answer_set.filter(value="Yes").count }} //breaks my page...
为这个问题计算所有“是”答案的正确方法是什么?
答案 0 :(得分:1)
构建Django是为了让你必须在你的视图中放置逻辑。该模板不应包含“高级逻辑”。
在视图中执行查询,将结果发送到模板。
return render(request, 'base.html', {'qobj': qobj, 'yes_count': qobj.answer_set.filter(value="Yes").count()})
模板:
{{ yes_count }}
答案 1 :(得分:0)
您也可以编写自定义模板过滤器或使用模型方法获得所需效果,我相信这将是“Djangoist”的方式。
https://docs.djangoproject.com/en/dev/howto/custom-template-tags/
https://stackoverflow.com/a/1333277/1453607
你的问题几乎与这个问题重复: