0

在我的模板中,我想计算 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...

计算这个问题的所有“是”答案的正确方法是什么?

4

2 回答 2

1

Django 的构建是为了让您必须将逻辑放在您的视图中。该模板不应包含“高级逻辑”。

在视图中进行查询,将结果发送到模板。

    return render(request, 'base.html', {'qobj': qobj, 'yes_count': qobj.answer_set.filter(value="Yes").count()})

模板:

{{ yes_count }}
于 2013-10-04T17:03:34.647 回答
0

您还可以编写自定义模板过滤器或使用模型方法来获得所需的效果,我相信这将是“Djangoist”的方式。

关于编写自己的模板标签和过滤器的文档:

https://docs.djangoproject.com/en/dev/howto/custom-template-tags/

一个相关问题的例子:

https://stackoverflow.com/a/1333277/1453607

你的问题几乎是这个问题的重复:

django模板系统,在模型中调用函数

于 2013-10-04T19:27:36.923 回答