2011-12-31 3 views
8

Это мой base.htmlДжанго шаблон распространяется не работает

<!DOCTYPE html> 
<head> 
<title> My Site </title> 
</head> 
<body> 
<div id="wrapper"> 
<!-- HEADER START --> 
{% block nav %} {% endblock %} 
{% block index %} {% endblock %} 
</div> 
</body> 
</html> 

это мой nav.html

{% extends "base.html" %} 
{% block nav %} 
<div id="header"> 
<div class="inner"> 

<div class="nav"> 
<ul> 
<li class="current"><a href="index.html">Home</a></li> 
<li><a href="about.html">About</a></li> 
<li><a href="blog_right.html">Blog</a></li>       
<li><a href="contact.html">Contact</a></li> 
</ul>      
</div> 
<div class="clear"></div>   
</div><!-- .inner end --> 
</div><!-- #header end --> 
<!-- HEADER END --> 
{% endblock %} 

это мой index.html

{% extends "base.html" %} 
{% block index %} 
<p> hello </p> 
{% endblock %} 

Я сделал это несколько раз раньше, но я не знаю, почему это НЕ работает? URL-адреса и взгляды here.

+2

В чем проблема? «Это не работает» не очень полезно. –

ответ

10

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

Как только вы назовете указатель index.html, он будет отображаться правильно. Эффект, который вы хотите, может быть достигнут путем изменения base.html в ваших представлениях на index.html.

Надеюсь, это поможет. можно прочитать здесь: https://docs.djangoproject.com/en/dev/topics/templates/#template-inheritance

+0

спасибо, это серьезно помогло. и да, я запомню это ... глупо меня :( – user993563

1

Для большего количества людей, которые заканчиваются здесь (как я), главное отметить, что при использовании {% extends 'something.html' %} вы не можете использовать ничего, кроме этих тегов на верхнем уровне.

Возможно, у вас есть теги html внутри этих тегов (например, теги блоков), но не помещайте НИЧЕГО вне тегов шаблона.

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