Python 虚拟的 Django 模板
Python Django templates for dummy
首先,很抱歉,这肯定是重复的。但是,我在 Whosebug 上找不到与高级 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 %}
但是,当我访问我的网站时,我看到
我做错了什么?
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 %}
顺便说一句,您无需覆盖管理模板即可更改 title/header。阅读文档 this section。
看起来您的模板一开始就没有渲染过。
模板中的翻译是使用 trans 和 blocktrans 标签完成的,而不是通过 _(通常指的是 ugettext 或其他兄弟)
我的建议是:您可以在settings.py中print TEMPLATE_DIRS
查看实际路径并确保它是正确的。
首先,很抱歉,这肯定是重复的。但是,我在 Whosebug 上找不到与高级 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 %}
但是,当我访问我的网站时,我看到
我做错了什么?
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 %}
顺便说一句,您无需覆盖管理模板即可更改 title/header。阅读文档 this section。
看起来您的模板一开始就没有渲染过。
模板中的翻译是使用 trans 和 blocktrans 标签完成的,而不是通过 _(通常指的是 ugettext 或其他兄弟)
我的建议是:您可以在settings.py中print TEMPLATE_DIRS
查看实际路径并确保它是正确的。