在我看来,这似乎是一个非常简单的问题,但我似乎无法找到答案。
我需要做的就是确定数据库查询返回的对象数。
具体情况如下:我有一个名为Student的模型。此模型具有名为courses_current的ManyToManyField成员,该成员与课程模型表相关。当我将Student实例传递给模板时,我希望能够执行以下操作(语法可能不完全正确,但您会得到基本的想法):
<div id="classes">
{% if student.classes_current.all.size == 0 %}
<h1> HEY! YOU AREN'T TAKING ANY CLASSES! REGISTER NOW!
{% else %}
Here are your courses:
<!-- ... -->
{% endif %}
</div>
现在,我很确定X_set.all.size
不是真的。在manage.py
shell中我可以使用len(student.classes_current.all())
,但我不知道使用内置函数的任何方法,而“类字典对象”没有.size()
功能,所以我很茫然。我确信这是一个非常简单的解决方案(或者至少我希望有),但我似乎无法找到它。
答案 0 :(得分:1)
{{ student.classes_current.all.count }}但要注意它不会获取对象,因此如果要循环它们,则需要执行单独的查询。
答案 1 :(得分:1)
如果你需要在类for
上进行循环,那么tag可以获得你需要的东西。
{% for cl in student.current_classes.all %}
{{ cl }}
{% empty %}
<h1>Hey! ...</h1>
{% endfor %}
文档https://docs.djangoproject.com/en/dev/ref/templates/builtins/?from=olddocs#for-empty