这有点奇怪。我正在使用Django 1.9.6,并且在我从过时的1.7语法中改变它之后它不喜欢我的i18n javascript_catalog
url(我最终决定我应该做些什么“不会在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'
我无法从'packages'
删除django_info_dict
密钥,因为它会导致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视图和网址中的名字......我在这里俯瞰什么?
答案 0 :(得分:1)
我认为'packages'
键引用了js_info_dict中的那个。在错误中,它实际上引用了名为packages
的捕获正则表达式组。我不需要动态packages
变量,因为我在my_app
中指定了静态包js_info_dict
,因此使用的正确网址格式为:
url(r'^jsi18n/$', javascript_catalog, js_info_dict, name='javascript_catalog'),