私はdjangio-localeurlを使用して、URLに基づいてロケールを切り替えています。少しのしゃっくりを除けば、ほとんど問題なく動作します。
クラスベースのビューの一部では、レイジー逆関数を使用しています。そうしないと、URLパターンの欠落に関するエラーが発生します。これは、ファイルがインポートされた順序によるものです。読んだ1つの説明:
ビューのデコレータはurls.pyの解析中に評価されるため、「鶏が先か卵が先か」の問題が発生します。urls.pyが読み取られないため、reverse()メソッドは使用できません。
django-localeurlmonkey-がDjangoの内部reverse
機能にパッチを当てているようです。この変更は正常に機能しますが、私のlazy_reverse
関数で問題が発生します。lazy_reverse
テストを実行すると、この関数を使用した場所でエラーが発生します。これが私のlazy_reverse
関数コードです:
from django.utils.functional import lazy
from django.core import urlresolvers
reverse_lazy = lambda name=None, *args : lazy(urlresolvers.reverse, str)(name, args=args)
私が取得し続けるエラーは次のとおりです。
TypeError: Lazy object returned unexpected type.
何が原因なのか理解できたようです。localeurl
この問題は、INSTALLED_APPS
設定から削除するとすぐに消えるようです。
これを解決する方法について何かアイデアはありますか?
ありがとう