ich mein Setup Navigationsleiste in meinem base.html haben wieSie etwas in Base auf einer bestimmten Vorlage Seite nicht tun - Django
folgt<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>
Das Problem ist jetzt, dass ich tun nicht wollen führen Sie das {% if%} Block, wenn der Benutzer nicht authentifiziert ist, und wenn ich eine bestimmte Vorlage Seite also bin Rendering
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 %}
einfach kopieren Der Inhalt von Base und Einfügen nach dem Entfernen hilft nicht. Es führt immer noch base.html aus und geht in die if-Anweisung und zeigt einen Fehler an, weil slug nicht definiert wird, bis ich die Details in create_thing.html ausgefüllt habe.
Wo definiere ich diese Variable? –
Aus Ihrer Sicht, übergeben Sie es so wie Sie mit Ihrem Formular in '{{form.as_p}}' –
Vielen Dank @ felício Works great. BTW Kann ich "und" anstelle von zwei if-Anweisungen verwenden? Wenn ja, kannst du bitte die Syntax angeben? –