我的 i18n javascript 目录 url 的 django KeyError
django KeyError for my i18n javascript catalog url
这有点奇怪。我正在使用 Django 1.9.6,在我从过时的 1.7 语法更改它之后它不喜欢我的 i18n javascript_catalog
url(我最终决定我应该做一些事情 "not gonna work in django 1.10" 每次 runsrever
) 都会收到警告。这是我得到的:
urls.py
from django.views.i18n import javascript_catalog
js_info_dict = {
'domain': 'djangojs',
'packages': ('my_app',),
}
urlpatterns = [
url(r'^jsi18n/(?P<packages>\S+?)/$',
javascript_catalog, js_info_dict, name='javascript_catalog'),
]
尝试渲染时:
KeyError at /my_app/my_url/
'packages'
我无法从 django_info_dict
中删除 'packages'
键,因为它会导致 NoReverseMatch
错误:Reverse for 'javascript_catalog' with arguments '()' and keyword arguments '{}' not found.
如您所料,它出现在 template.html 中:
<script src="{% url 'javascript_catalog' %}"></script>
这几乎是 docs 的复制粘贴。我有 django.views.i18n.javascript_catalog 视图和 url 中的名称......我在这里忽略了什么?
我认为 'packages'
键指的是 js_info_dict 中的键。在错误中,它实际上引用了名为 packages
的捕获正则表达式组。不需要动态 packages
变量,因为我在 js_info_dict
中指定了静态包 my_app
,因此要使用的正确 url 模式是:
url(r'^jsi18n/$', javascript_catalog, js_info_dict, name='javascript_catalog'),
这有点奇怪。我正在使用 Django 1.9.6,在我从过时的 1.7 语法更改它之后它不喜欢我的 i18n javascript_catalog
url(我最终决定我应该做一些事情 "not gonna work in django 1.10" 每次 runsrever
) 都会收到警告。这是我得到的:
urls.py
from django.views.i18n import javascript_catalog
js_info_dict = {
'domain': 'djangojs',
'packages': ('my_app',),
}
urlpatterns = [
url(r'^jsi18n/(?P<packages>\S+?)/$',
javascript_catalog, js_info_dict, name='javascript_catalog'),
]
尝试渲染时:
KeyError at /my_app/my_url/
'packages'
我无法从 django_info_dict
中删除 'packages'
键,因为它会导致 NoReverseMatch
错误:Reverse for 'javascript_catalog' with arguments '()' and keyword arguments '{}' not found.
如您所料,它出现在 template.html 中:
<script src="{% url 'javascript_catalog' %}"></script>
这几乎是 docs 的复制粘贴。我有 django.views.i18n.javascript_catalog 视图和 url 中的名称......我在这里忽略了什么?
我认为 'packages'
键指的是 js_info_dict 中的键。在错误中,它实际上引用了名为 packages
的捕获正则表达式组。不需要动态 packages
变量,因为我在 js_info_dict
中指定了静态包 my_app
,因此要使用的正确 url 模式是:
url(r'^jsi18n/$', javascript_catalog, js_info_dict, name='javascript_catalog'),