2015-01-31 2 views
0

Прежде всего, я сожалею, потому что это, безусловно, дубликат. Тем не менее, я не мог найти вопрос о stackoverflow, а не о расширенных функциях шаблонов Django.Шаблоны Python Django для манекена

Я следовал за Django tutorial религиозно. Моя структура проекта выглядит следующим образом:

poll_site 
    ./db.sqlite3 
    ./manage.py 
    ./polls 
    ./admin.py 
    ./__init__.py 
    migrations 
    models.py 
    __pycache__ 
    tests.py 
    views.py 
    ./poll_site 
    ./__init__.py 
    ./settings.py 
    ./urls.py 
    ./wsgi.py 
    ./templates 
    ./admin 
     base_site.html 

Последняя строка settings.py является

TEMPLATE_DIRS = (os.path.join(BASE_DIR, "templates"),) 

(я попытался TEMPLATE_DIRS = [os.path.join(BASE_DIR, "templates")])

templates/admin/base_site.html выглядит следующим образом:

{% extends "admin/base.html" %} 

{% block title %}{{ title }} | {{ site_title|default:_('Polls site admin') }}{% endblock %} 

{% block branding %} 
<h1 id="site-name"> 
    <a href="{% url 'admin:index' %}">{{site_header|default:_('Monkey') }}</a> 
</h1> 
{% endblock %} 

{% block nav-global %}{% endblock %} 

Однако, когда я иду на свой сайт, я вижу Django administrator image

Что я делаю неправильно?

ответ

2

default фильтр выводит свой параметр только тогда, когда значение пуст. В вашем случае site_title и site_header не пустые, поэтому default ничего не делают.

{% load i18n %} 

{% block title %}{{ title }} | {% trans 'Polls site admin' %}{% endblock %} 

{% block branding %} 
<h1 id="site-name"> 
    <a href="{% url 'admin:index' %}">{% trans 'Monkey' %}</a> 
</h1> 
{% endblock %} 

BTW Вам не нужно переопределять шаблон администратора для изменения заголовка/заголовка. Прочтите this section документации.

+0

Мне пришлось оставить '{% extends" admin/base.html "%}' в качестве первой строки, если мне нужно что-то помимо названий. – julka

+0

Несомненно. Я показал только соответствующий код :-) – catavaran

0

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

Перевод шаблонов производится с транс и blocktrans тегов, а не через _ (которые обычно относятся к ugettext или других братьев и сестер)

Мое предложение: Вы можете print TEMPLATE_DIRS в settings.py, чтобы увидеть фактический путь & убедитесь, что это правильно.

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