不要在基于特定模板页面的基础上做一些事情 - Django

时间:2016-03-24 13:44:53

标签: python django web-applications

我在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。

1 个答案:

答案 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 %}作为上下文传递给渲染器。