所以,我想在循环中渲染一些对象。 I.E.在主页上呈现5个最新帖子中的每个帖子。无论用户是否登录,这些帖子中的每一个都将以不同方式显示。
我有一个问题:我将如何进行这种区分?我想像这样的模板
{% if user.is_logged_in %}
{% for post in latest_posts %}
post.render_long_form
{% endfor %}
{% else %}
{% for post in latest_posts %}
post.render_short_form
{% endfor %}
{% endif %}
如何让函数render_short_form
和render_long_form
返回相应的HTML snippits?我希望他们可以调用其他模板进行渲染。
谢谢!
答案 0 :(得分:2)
为什么不使用{% include %}
代码?
{% if user.is_logged_in %}
{% for post in latest_posts %}
{% include 'long_form.html' %}
{% endfor %}
{% else %}
{% for post in latest_posts %}
{% include 'short_form.html' %}
{% endfor %}
{% endif %}
或者,更多DRY版本:
{% for post in latest_posts %}
{% if user.is_logged_in %}
{% include 'long_form.html' %}
{% else %}
{% include 'short_form.html' %}
{% endif %}
{% endfor %}