2016-04-03 2 views
0

Я использую систему шаблонов для разработки разных страниц моего сайта. У меня есть «base.html», который является базовым шаблоном, где есть статические (без {% blocks%}) общие функции на всех страницах моего сайта, как заголовок и навигационное меню.Мои шаблоны не распространяются должным образом на 'base.html'

Я вношу в него некоторые изменения, например, ввод текста в заголовке в «логин» и «выход из системы», а также создание ссылок на элементы меню.

Когда я перехожу к другому шаблону (который расширяет 'base.html'), он загружает все это хорошо, но, например, те новые функции входа в верхний div, а также ссылки в меню не отображаются. Разве они не распространены, если шаблон распространяется на «base.html»? Я покажу вам фрагменты кода:

«base.html» имеет следующий код:

<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 %} 

Особенности я уже говорил, не работаю в любом другом шаблоне, который простирается «base.html». Например, «login.html» шаблон, на данный момент, выглядит следующим образом:

{% 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 %} 

Все эти теги шаблона в верхней части страницы, слегка требуется, чтобы наследовать стили от «base.html» (может не найти способ расширить эти стили без этого большого количества кода). Он правильно загружает div сверху, но не показывает, что я упоминал (новые строки входа/выхода в заголовке и ссылки в навигационном меню). Это происходит так же, как и с шаблоном 'list_index'.

Я не знаю, что может случиться здесь. Действительно ли возможно, что он распространяется только на некоторые фрагменты кода или не может распространяться на самые новые? Раздел настроек settings.py выглядит так:

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' 
      ], 
     }, 
    }, 
] 

Также попробовали использовать «DIRS»: []. Единственная страница, на которой все это хорошо видно, находится на индексной странице (на странице base.html). Что происходит в других шаблонах? Спасибо.

+0

У вас есть два файла base.html в разных местах? – Selcuk

+0

Вы должны показать представление, которое отображает login.html. –

+0

Да, и спасибо, у меня было два разных файла base.html с этими небольшими отличиями. Теперь проблема в том, что после изменения страница «list_index» не получает стили из base.html (как это было раньше). Отредактировано с обновлением кода. – Jim

ответ

0

в base.html Я вижу только {% block content1%}, не вижу {% endblock content1%}}.

+0

Ну, это потому, что я не копировал весь код. Эта проблема теперь решена, но это привело к тому, что стили не распространялись должным образом. Первое сообщение отредактировано, спасибо за ответ. – Jim

+0

Если мой ответ будет вам полезен. Пожалуйста, проголосуйте за меня –

Смежные вопросы