2

現在、プロジェクトにdjango 1.3を使用しています。プロジェクトのローカライズに取り組んでいます。Python コードとテンプレートはローカライズできますが、JavaScript のローカライズに問題があります。「レンダリング中に NoReverseMatch をキャッチ: ''django.views.i18n.javascript_catalog'' の引数 '()' とキーワード引数 '{}' が見つからない」という TemplateSyntaxError メッセージが表示されます。url.py の一部とテンプレートの home.html コードを以下に示します。python manage.py シェルを使用して django.views.i18n.javascript_catalog を確認しましたが、これは問題ありません。

私が間違っていることを教えてもらえますか?

テンプレートの url 関数が http:///jsi18n/ になるべきではありませんか?

ありがとう!

=== urls.py ===

js_info_dict = {
    'domain': 'djangojs',
    'packages': ('messages',),
}

urlpatterns = patterns('',

    url(r'^$', 'messages.views.home', name='home'),
    url(r'^messages/$', include('messages.urls')),

    # Localization
    url(r'^i18n/', include('django.conf.urls.i18n')),
    url(r'^jsi18n/$', 'django.views.i18n.javascript_catalog', js_info_dict),
)

===終わり===

=== home.html ===

<body>
    <script type="text/javascript" src="{% url 'django.views.i18n.javascript_catalog' %}"></script>
</body>

===終わり===

4

2 に答える 2

7

私は最終的にこのエラーの理由を見つけました。エラーはローカリゼーションとは関係ありません。変えたら

<script... {% url 'django.views.i18n.javascript_catalog' %}"></script>

<script... {% url django.views.i18n.javascript_catalog %}"></script>

エラーはなくなります。

ではurls.py

url(r'^jsi18n/$', 'django.views.i18n.javascript_catalog', js_info_dict),

要するに、html テンプレート ファイルでは引用符で囲みませんdjango.views.i18n.javascript_catalogが、urls.pyファイルでは引用符で囲みますdjango.views.i18n.javascript_catalog。この後、JavaScript の翻訳を機能させることができました。

于 2012-11-12T22:04:41.017 に答える
0

同じエラーがありましたが、これがあることがわかりました:

url(r'^jsi18n/$', 'django.views.i18n.javascript_catalog',js_info_dict),
url(r'^i18n/', include('django.conf.urls.i18n')),

これの代わりに:

url(r'^i18n/', include('django.conf.urls.i18n')),
url(r'^jsi18n/$', 'django.views.i18n.javascript_catalog', js_info_dict),
于 2015-10-11T15:49:35.913 に答える