如何获得问题的答案数量
class Answers(models.Model):
...
question = models.ForeignKey(Question, related_name='Question')
当我
return render_to_response('profile.xhtml',
{'questions': Question.objects.filter(author=details_profile),},
context_instance=RequestContext(request))
在模板中我想获得每个问题的答案数量({{q.answer.count}}只是一个例子)
{% for q in questions %}
{{ q.title }}, Answers: {{ q.answer.count }}
{% endfor %}
nvm我只是在models.py
中制作class Question(models.Model):
...
def count_it(self):
return Answers.objects.filter(question=self).count()
并在模板{{q.count_it}}
中使用答案 0 :(得分:1)
如果你没有设置related_name='Question'
,你就可以在模板中获得这样的计数:
{{ q.answer_set.count }}
...因为“answer_set”是默认的related_name
。按原样,你应该可以使用:
{{ q.Question.count }}
但那太丑了!希望您现在已经知道related_name
是您要用来将返回引用到当前模型的名称您引用的模型在ForeignKey
中。所以最好的选择是:
class Answers(models.Model):
...
question = models.ForeignKey(Question, related_name='answers')
然后在模板中:
{% for q in questions %}
{{ q.title }}, Answers: {{ q.answers.count }}
{% endfor %}
答案 1 :(得分:0)
{% for q in questions %}
{{ q.title }}, Answers: {{ q.Question|length }}
{% endfor %}
我建议您将相关名称更改为“答案”或其他内容。