我在base.html中设置了导航栏,如下所示
<ul>
<li><a href="{% url 'home' %}">Home</a></li>
<li><a href="{% url 'about' %}">About</a></li>
<li><a href="{% url 'contact' %}">Contact</a></li>
{% if user.is_authenticated %}
<li><a href="{% url 'auth_logout' %}">Logout</a></li>
<li><a href="{% url 'thing_detail' slug=user.thing.slug %}">My Profile</a></li>
{% else %}
<li><a href="{% url 'auth_login' %}">Login</a></li>
<li><a href="{% url 'registration_register' %}">Register</a></li>
{% endif %}
</ul>
现在问题是我不想要在用户未经过身份验证时以及在呈现特定模板页时执行{%if%}块,即
create_thing.html
{% extends 'layouts/base.html' %}
{% block title %} Create a Thing
- {{ block.super }}{% endblock %}
{% block content %}
<div id="content">
<h1> Create a Thing </h1>
<form role="form" action="" method="post">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Submit" />
</form>
</div>
{% endblock %}
只需从Base复制内容并在删除后粘贴它不会有帮助。它仍然执行base.html并进入if语句并显示错误,因为在我填写create_thing.html中的详细信息之前不会定义slug。
答案 0 :(得分:0)
尝试在另一个app.get('/livestreaming', function (req, res) {
if(cam !== null) {
cam.getStreamUri({protocol:'RTSP'}, function(err, stream) {
newsocket = new Stream({
name: 'mysoc',
streamUrl:stream.uri,
wsPort: 8888
});
});
} else {
res.json({"error":"connect to camera"});
}
});
子句中嵌套{% if %}
子句。每当您不想执行第一个if时,将{% if not aux_var %}
作为上下文传递给渲染器。