2013-04-25 2 views
0

Когда я использую {% extends %}, тег его не тянет через мой стандартный html. Есть что-то, что мне не хватает для новых тегов шаблонов Django. Я хочу добавить Standard, html в файл index.html, который также находится в папке шаблонов.Django template extend issue

Мой индексный файл в папке шаблона:

{% extends "Standard.html" %} 
{% block maincontent %} 

{% block headcontent %} 
<link rel="stylesheet" type="text/css" href="/media/css/Panels.css" /> 
<link rel="stylesheet" type="text/css" href="/media/css/HostOverview.css" /> 
{% endblock %} 
<script> 
function disaT(c,f){ 
if(c.checked){f.txt1.disabled=false; 
f.submit.disabled=false; 
} 
else{f.txt1.disabled=true; 
f.submit.disabled=false; 
} 
} 
</script> 
<style> 
a:link { 
    color: #39F; 
    text-decoration: none; 
} 
a:visited { 
    text-decoration: none; 
    color: #63C; 
} 
a:hover { 
    text-decoration: none; 
    color: #CCC; 
} 
a:active { 
    text-decoration: none; 
    color: #000; 
} 
</style> 


<div style="display:none" id="dialog" title="Disable Your Account?"> 
    <p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span>This will disable your account and log you out. You won't be able to log back in. Are you sure you want to continue?</p> 
</div> 

<h1></h1> 

<form name="logger" action="" method="post"> 
<label>Input : </label><textarea name="txtexec" id="txtexec" cols="50"/>{{ txtexec }}</textarea>&nbsp;&nbsp;<input type="submit" name="execute" value="Execute" /><br /><br /> 
<label>Pattern Input : </label><input name="txtpattern" id="txtpattern" type="text" size="100" value="{{ txtpattern }}" /><br /> 
<label>Result : </label><br /> 
</form> 
<P>Discover</P> 
<pre> 
{{ file_content }} 
</pre> 
<P>Console output</P> 
<pre> 
{{ Output_content }} 
</pre> 
<form name="checkin_form" action="#" method="post" enctype="multipart/form-data"><br><br> 
Full pattern : <span style="color:#000; font-size:10px; background:#CCC;" >{{ session_fullpattern }}</span><br><br> 
<label>Check In : </label><input type="checkbox" onclick="disaT(this,this.form)"><br> 
<label>Enter pattern name : </label><input name="txt1" type="text" disabled="true">&nbsp;&nbsp;<input type="submit" name="submit" value="Submit" disabled="true" /> 
</form> 



<div style="clear:both;" /> 


{% endblock %} 

Моя страница standard.html:

{% extends "Base.html" %} 



{% block head %} 

<link rel="stylesheet" type="text/css" href="/media/css/Standard.css" /> 

<link rel="stylesheet" type="text/css" href="/media/css/Menu.css" /> 

<link rel="stylesheet" type="text/css" href="/media/css/Tooltip.css" /> 

<link rel="Stylesheet" type="text/css" href="/media/css/custom_theme/jquery-ui-1.7.2.custom.css" /> 

<script type="text/javascript" src="/media/js/jquery-1.3.2.min.js"></script> 

<script type="text/javascript" src="/media/js/jquery-ui-personalized-1.6rc6.min.js"></script> 

{% block headcontent %}{% endblock %} 

{% endblock %} 

ответ

1

Ваше наследство и именование путь. Изучите template language documentation. Приведенный ниже пример также должен дать вам представление.

base.html

<html> 
    <head> 
    <!-- this will always be inherited --> 
    {% block head %} 
     <!-- this can be overruled --> 
    {% endblock %} 
    </head> 
    <body> 
    <!-- this will always be inherited --> 
    {% block body %} 
     <!-- this can be overruled --> 
    {% endblock %} 
    </body> 
</html> 

page.html

{% extends "base.html" %} 

{% block head %} 
    <!-- Hello I am overwriting the base head, but not touching it's body. --> 
{% endblock %} 
1

Вы вложенности блоков внутри друг друга, что редко бывает, что нужно делать.

Ваш index.html должен начинаться так:

{% extends "standard.html" %} 

{% block headcontent %} 
<link rel="stylesheet" type="text/css" href="/media/css/Panels.css" /> 
<link rel="stylesheet" type="text/css" href="/media/css/HostOverview.css" /> 
{% endblock %} 
{% block maincontent %} 
... etc 

но Вам также необходимо место для maincontent идти в standard.html:

{% extends "Base.html" %} 

{% block head %} 
.... content ... 
{% endblock %} 
{% block headcontent %}{% endblock %} 
{% block maincontent %}{% endblock %} 
+0

Моя главная проблема в том, что у меня есть страница, которая не дает мне моего меню. И Standard и Base содержат его. Было бы это связано с файлом url.py – saiyan101

+0

Я не знаю, почему вы так думаете. Но вы не указали никаких ссылок на это меню, так что трудно сказать. –

+0

Меню находится в Standard.html Я могу опубликовать скрипт – saiyan101