6

問題

Django 1.10.3現在、からにアップグレードしようとしていますDjango 1.9.8。ただし、現在、私のテストは失敗しています。何らかの理由で、Django が私の URL を翻訳/国際化しようとしているからreverse()です。

国際化に関しては何も変更していないので、この「機能」を無効にしたいと考えています。多くのテストに失敗するだけでなく、この Web サイトの URL を静的に参照しなければならないプロジェクトもいくつかあります。これは、この Web サイトの URL を変更することが許可されていないことを意味します (または、Django が思いつく翻訳ごとに URL を編集する必要があり、これは非常に面倒です)。


エラー

私のテストで発生している実際のエラーは次のとおりです。

Traceback (most recent call last):
  File "/tests/unit/views/test_index.py", line 14, in setUp
    self.url = reverse('indexpage')
  File "/local/lib/python2.7/site-packages/django/urls/base.py", line 91, in reverse
    return force_text(iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs)))
  File "/local/lib/python2.7/site-packages/django/urls/resolvers.py", line 346, in _reverse_with_prefix
    possibilities = self.reverse_dict.getlist(lookup_view)
  File "/local/lib/python2.7/site-packages/django/urls/resolvers.py", line 243, in reverse_dict
    return self._reverse_dict[language_code]
KeyError: 'nl-nl'

Django がこのプロジェクトの設定で提供された言語コードを使用して何かを行おうとしていることは明らかです。


私は何を試しましたか

USE_I18N設定してみましたFalse。私もこれを試しましたUSE_L10N。設定で指定されたものも削除しようとしましたLANGUAGE_CODEが、スローされたエラーはen-us言語コードではなく言語コードを参照していnl-nlます。LocaleMiddlewareまた、少なくともエラーの表示を停止できるかどうかを確認するために をインストールしようとしましたが、残念ながらこれも機能しませんでした。


質問

Django で URL の内部化/変換をオフにするにはどうすればよいですか。または、これが不可能な場合、どのような代替手段がありますか?

前もって感謝します。

4

3 に答える 3

15

ニシンの可能性があります (別のエラーが原因)。urls.pyこのエラーが消える前に、ファイルがロードされたときにスローされていたいくつかの異なる例外に対処する必要がありました。django シェルにドロップして、次のコマンドを実行してみてください。

from django.urls import reverse
reverse('indexpage')

そこに問題の原因となっている実際のエラーが表示されるはずです。問題を修正し、例外がなくなるまで繰り返します。

于 2017-02-16T23:44:53.057 に答える