【发布时间】:2016-02-14 05:47:13
【问题描述】:
在 Django 模板中,我想向经过身份验证和未经身份验证的用户显示不同的内容。
具体来说,如下所示:
{% if not user.is_authenticated %}
<div class="margin">
{{ group.topic }}
</div>
{% else %}
{% extends "base.html" %}
{% load humanize %}
{% block content %}
<div class="margin">
{{ group.topic }}
<br>
<b>members:</b>
{% for member in members %}
<a href="{% url 'profile' slug=member.username %}">{{ member.username }}</a>,
{% endfor %}
<hr size=1>
<form action="{% url 'private_group_reply' slug=unique %}" method="POST" enctype="multipart/form-data">
{% csrf_token %}
<input type="hidden" id="id_link" name="unique" class="hidden_id" value="{{ unique }}">
<br>{{ form.image }}<br>
<br>{{ form.text }}<br>
<input class="button" type="submit" value="OK" id="id_submit">
</form>
{% for reply in replies %}
{{ reply.writer }}: {{ reply.text }},{{ reply.submitted_on|naturaltime }}<br>
{% endfor %}
{% endblock %}
{% endif %}
换句话说,我只想为经过身份验证的用户扩展 base.html,对于未经过身份验证的用户,我想要一个普通的模板。
我不断收到 TemplateSyntaxError: invalid block tag {% endif %}
我怎样才能做到这一点?
有问题的应用是旧版 Django 应用,使用 Django 1.5。
【问题讨论】:
-
这是您的实际代码吗?
-
不,这是一种简化。
-
我认为您缺少 {% extends "base.html"} 行中的结束 '%'
-
哦不,这是我在这里写的时候打错了。让我纠正一下。事实上,我会用实际的代码 sn-p 来更新问题。
-
我认为您的问题是扩展,您为什么不在视图中定义扩展的 html 并通过上下文将其发送到您的模板?
标签: python django django-templates