사이트의 모든 막대를 빌드하기위한 templatetags를 만들려고합니다. 나는 모든 의사를 따라 갔지만 여전히 작동하지는 않는다. 내가 응용 프로그램 "바"를 작성/표시 줄에 settings.py 에서 응용 프로그램에 추가inclusion_tag가 작동하지 않습니다. 템플릿을로드 할 수 없습니다.
/
-- __init__.py
-- templatetags/
-- -- nav_bar.py
-- -- __init__.py
에서/템플릿/ - top_bar.html
이제nav_bar.py is :
from django import template
register = template.Library()
@register.inclusion_tag('top_bar.html')
def show_topbar():
user_login = 'prova'
return {'user_login': user_login}
그것은 시도가 아니라 단지 의미가 있습니다. 나중에 user_login은 사용자가 기록 된 경우 request.user.is_authenticated()와 같은 정보를 표시합니다.
top_bar.html is:
<div class="navbar navbar-inverse navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">SkillAsk.com</a>
</div>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li class="active"><a href="#">Home</a></li>
<li><a href="#about">About</a></li>
<li><a href="#contact">Contact {{ user }}'s</a></li>
{% if user_login %}
<div class="navbar-form navbar-right"><a href="/accounts/logout/" class="btn btn-danger">Log Out</a>
</div>
<ul class="nav navbar-nav navbar-right">
<li id="fat-menu" class="dropdown">
<a href="#" id="drop3" role="button" class="dropdown-toggle" data-toggle="dropdown">
{{ user.username }}'s <b class="caret"></b></a>
<ul class="dropdown-menu" role="menu" aria-labelledby="drop3">
<li role="presentation"><a role="menuitem" tabindex="-1" href="/backoffice/">Profilo</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="/backoffice/setting">Impostazioni</a></li>
<li role="presentation" class="divider"></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="/backoffice/skills/add">Aggiungi Skill</a></li>
</ul>
</li>
</ul>
<!-- Authenticate account menu -->
{% else %}
<form action="/accounts/login/?next=/backoffice" method="post" accept-charset="utf-8" class="navbar-form navbar-right">{% csrf_token %}
<div class="form-group">
<input type="text" placeholder="UserName" name="username" id="username" class="form-control">
</div>
<div class="form-group">
<input type="password" placeholder="Password" name="password" id="password" class="form-control">
</div>
<button type="submit" class="btn btn-success">Sign in</button>
</form>
{% endif %}
</div><!--/.navbar-collapse -->
</div>
</div>
내가
{% load staticfiles %}
{% load nav_bar %}
bla bla bla
bla bla
및 인쇄와 templatetag로드 (내가 대신 모든 물건 아주 간단한 템플릿으로도 시도했지만 결과는 변경되지 않습니다) base.html 지금
을 템플릿
{{ show_topbar }}
... 내가 바를 넣고 싶었던 곳. 그것의 아주 아주 아주 간단하게 보이지만, 출력은 오류없이 아무것도 아니다. 템플릿 top_bar.html을 삭제해도 아무런 오류가 없습니다 ... 템플릿 이름을 변경하면 오류가 발생하지 않습니다 ...
IMHO 문제가 등록에 포함되었습니다. 원래는 몇 가지 response_to_render를 사용하고 싶었습니다. 그 답례로 ... docs에있는 예제는 render를 사용하지 않습니다. 왜 모든 페이지에서 템플릿을 인쇄 할 수 없습니까? 나는 너무 궁금해! 당신에게
참고 감사합니다 단지 정보를 원하시면, 내가 기지 ... 추신을 확장 home.html을 불리는 또 다른 템플릿을 사용하여 설정에서 템플릿 dir을 정의했습니다 ... 다른 모든 템플릿은 여전히 작동 중입니다.