2016-04-03 5 views
0

Ich verwende das Vorlagensystem, um die verschiedenen Seiten meiner Website zu entwickeln. Ich habe eine 'base.html', die die Basisvorlage ist, wo es statische (ohne {% blocks%}) Gemeinsamkeiten auf allen Seiten meiner Website gibt, wie die Kopfzeile und das Navigationsmenü.Meine Vorlagen werden nicht ordnungsgemäß auf "base.html" erweitert.

Ich mache einige Änderungen daran, wie die Einführung der Text in der Kopfzeile zu den "Login" und "Abmelden", auch die Links auf den Menüelementen erstellen.

Wenn ich zu anderen Vorlage (die "base.html" erweitert), lädt es alles gut, aber zum Beispiel diese "Login" neue Funktionen am oberen div und auch die Links auf dem Menü werden nicht angezeigt. Sind sie nicht üblich, wenn die Vorlage auf 'base.html' erweitert wird? Ich werde Ihnen zeigen, Teile des Codes:

'base.html' hat diesen Code:

<body> 

<header> 
<div class="topbox"> 
    <!-- <img src="static/mysite/g5794.png" alt="Logo" height="180" width="1400"> --> 
</div> 
<div id="auth"> 
    {% if user.is_authenticated %} 
     <p>Bienvenido, <b>{{ user.username }} | <a href=" {% url "logout" %}">Logout</a></b></p> 
    {% else %} 
     <p>Bienvenido, por favor <a href="{% url "login" %}">loguéate</a></p> 
    {% endif %} 
</div> 
<p>MAIN PAGE MAIN TOP PAGE</p> 
</header> 

<nav> 
    <div class="menu"> 
     <p><a href="{% url "index_view" %}">HOME</a> | <a href="{% url "list_index" %}">LIST</a> | <a href="">ELSE</a> | <a href="">BLOG</a></p> 
    </div> 
</nav> 

{% block content1 %} 

Die Funktionen, die ich erwähnt in keiner anderen Template arbeiten, die 'base.html' erstreckt. Zum Beispiel sucht die ‚login.html‘ Vorlage für den Augenblick, wie folgt aus:

{% extends "base.html" %} 
{% load staticfiles %} 
{% load static from staticfiles %} 
{% load i18n %} 
{% block title %}{% trans "LOGIN" %}{% endblock %} 
{% include "base.html" %} 

{% block content1 %} 
{% block style_base %} 
<link href="{% static 'css/styles.css' %}" rel="stylesheet"> 
{% endblock %} 
    <div style="text-align:center"> 
    <h1>login</h1> 
    {% if message %} 
    <b>{{message}}</b> 
    {% endif %} 
    <form action="" method="post">{% csrf_token %} 
     {{form.as_p}} 
    <input type="submit" value="Submit" /> 
</form> 
{% endblock %} 

alle, Template-Tags in Seitenanfang ist die Stile zu erben etwas benötigt, um von ‚base.html‘ (kann finde keinen Weg, diese Stile ohne so viel Code zu erweitern. Es lädt richtig die divs der Spitze, aber es zeigt nicht, was ich erwähnte (die neuen LOGON/logout Linien in der Überschrift und den Verbindungen im nav Menü). Dies geschieht auch mit der Vorlage 'list_index'.

Ich weiß nicht, was hier passieren könnte. Ist das wirklich möglich, dass sich das nur auf einige Codeabschnitte erstreckt oder sich nicht auf den neuesten erweitern lässt? Mein settings.py Vorlagenabschnitt sieht so aus:

TEMPLATES = [ 
    { 
     'BACKEND': 'django.template.backends.django.DjangoTemplates', 
     'DIRS': [os.path.join(BASE_DIR, 'Templates')], 
     'APP_DIRS': True, 
     'OPTIONS': { 
      'context_processors': [ 
       'django.template.context_processors.debug', 
       'django.template.context_processors.request', 
       'django.contrib.auth.context_processors.auth', 
       'django.contrib.messages.context_processors.messages', 
       'django.template.context_processors.media' 
      ], 
     }, 
    }, 
] 

Auch versucht mit dem 'DIRS': []. Die einzige Seite, auf der alles in Ordnung ist, ist auf der Indexseite (die Seite base.html). Was passiert in den anderen Vorlagen? Vielen Dank.

+0

Sind Sie sicher, dass Sie nicht zwei base.html-Dateien an verschiedenen Orten haben? – Selcuk

+0

Sie sollten die Ansicht anzeigen, die login.html darstellt. –

+0

Ja, und danke, ich hatte zwei verschiedene base.html Dateien mit diesen leichten Unterschieden. Nun ist das Problem, dass die Seite von 'list_index', sobald sie geändert wurde, nicht mehr die Stile von base.html (wie zuvor) erhält. Bearbeitet mit Code-Update. – Jim

Antwort

0

in base.html Ich sehe nur {% block content1%}, sehe nicht {% endblock content1%}}.

+0

Nun, das ist, weil ich den ganzen Code nicht kopiert habe. Dieses Problem ist jetzt gelöst, aber dadurch wurden die Stile nicht richtig erweitert. Der erste Beitrag ist bearbeitet, danke für die Antwort. – Jim

+0

Wenn meine Antwort für Sie nützlich ist. Bitte stimme mir zu –

Verwandte Themen