2017-06-30 20 views
0

私のモデルの一部のフィールドを翻訳するのにdjango-modeltranslationを使用しています。パッケージはうまく動作し、すべてが翻訳されます。機能のdjango-modeltranslationで言語を変更する方法

しかし、手動で言語を切り替える簡単な方法はありません。 Accessing Translated and Translation Fieldsを読んでから、

modeltranslationアプリを使用しての全体のポイントは、動的なコンテンツを翻訳しているので、それはそれらにアクセスすることになると、翻訳のためにマークフィールドは何とか特別です。翻訳されたフィールドによって返される値は、現在の言語設定に依存します。 「言語設定」は、Django set_languageビューとそれに対応するget_lang関数を参照しています。

set_language()を使用すると、ドキュメントに記載されているとおりに機能しません。ガット:私はビューでないset_language()を実行するので、これはおそらく起こっている

AttributeError: 'str' object has no attribute 'POST' 

質問:基本機能でdjango-modeltranslationの言語をどのように切り替えることができますか?

答えて

1

超簡単ですdjango.utils.translationからactivate()と呼ばれる方法があります:

>>> from django.utils.translation import activate 
>>> activate('en') 
>>> Model.objects.first() # will fetch english version 
>>> activate('fr') 
>>> Model.objects.first() # will fetch french version 

これは景色だけでなく、プレーンな機能で動作します。

あなただけの1はあなたがdjango.utils.translationからget_languageを使用することができます取得し、現在の言語に戻り用の言語を変更する場合:

>>> from django.utils.translation import get_language, activate 
>>> current_language = get_language() 
>>> activate('fr') 
>>> Model.object.first() 
>>> activate(current_language) 
関連する問題