我的i18n javascript目录网址的django KeyError

时间:2016-05-24 07:44:23

标签: django django-i18n

这有点奇怪。我正在使用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视图和网址中的名字......我在这里俯瞰什么?

1 个答案:

答案 0 :(得分:1)

我认为'packages'键引用了js_info_dict中的那个。在错误中,它实际上引用了名为packages的捕获正则表达式组。我不需要动态packages变量,因为我在my_app中指定了静态包js_info_dict,因此使用的正确网址格式为:

url(r'^jsi18n/$', javascript_catalog, js_info_dict, name='javascript_catalog'),