2014-01-27 2 views
0

Я хочу распространить другой шаблон на свой блог.html, несмотря на то, что я пытаюсь расширить его, он не работает. блог/index.htmlпродлить другое приложение к моему шаблону

{% block nav %} 
    <ul id="nav"> 
     <li>{% block nav-blog %}<a href="/blog/">Blog</a>{% endblock %}</li> 
     <li>{% block nav-photo %}<a href="/photo/">Photo</a>{% endblock %}</li> 
    </ul> 
{% endblock %} 
<div class="news"> 
    {% block polls %} 
     {% extends 'polls/index.html' %} 
    {% endblock %} 
<div> 

опросы/index.html

{% if latest_poll_list %} 
    <ul> 
     {% for poll in latest_poll_list %} 
      <li><a href="{% url 'polls:detail' poll.id %}">{{ poll.question }}</a></li> 
     {% endfor %} 
    </ul> 
{% else %} 
    <p>No polls are available.</p> 
{% endif %} 

ответ

0

Обычно проходит должен быть застрял в верхней части шаблона, а не где-то в шаблоне. В шаблоне используются теги, которые вы установили в базовых шаблонах.

+0

yes thats right, но если я положил на верх страницы, он не отобразит его слишком – Eriks

+0

hmm, то убедитесь, что вы можете получить доступ к шаблону. Не расширяя его, а также убедитесь, что у вас установлены эти шаблоны в файле настроек. – Anup

0

Вы должны убедиться, что вы делаете две вещи здесь:

  1. Объявите «нав» блок в вашем index.html. Это позволит django знать часть вашего индекса html, которую вы хотите перезаписать, когда шаблон extends. Все, что вы помещаете внутри блока «nav» в индекс html, будет считаться содержимым по умолчанию.
  2. Вам нужно использовать тег шаблона «extends» в начале вашего blog.html, поэтому django знает шаблон, который вы хотите расширить.

Как это:

index.html

{% block nav %} 
    <div> 
    Some default html here.. 
    </div> 
{% endblock %} 

А потом blog.html

{% extends index.html %}  
{% block nav %} 
    <div> 
    This is what will render 
    </div> 
{% endblock %} 

Кроме того, вы будете хотеть, чтобы проверить index.html, прежде чем пытаться продлить его, чтобы убедиться, что django находит этот шаблон. Если это не так, вам нужно добавить каталог, в котором он находится, в массив TEMPLATE_DIRS в вашем файле settings.py.

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