2012-08-24 75 views
2

我希望i18n.set_language()將語言存儲到用戶選擇語言時最終可用的user profileDjango - 可以i18n.set_language()存儲在用戶配置文件

Django也應該用這個來discover我的語言。

這是一個好主意嗎?如果是,我怎麼能這樣做?

+0

[django-user-accounts](http://django-user-accounts.readthedocs.org/en/latest/index.html)處理這個問題。 – jpic

+0

其實我已經使用_django-registration_做了_django-user-accounts_的一部分工作,並且我已經配置了一個用戶配置文件。這就是爲什麼我想知道如何手動。 –

回答

6
  1. How to override a view from an external Django app -> How to override without forking -> Overriding a view使 「i18n.set_language()的語言存儲到最終可用的用戶配置文件」

  2. 複製django-user-accounts middleware和改變get_language_for_user

  3. 地點後django.middleware.locale.LocaleMiddleware中間件,因爲這臺基於請求的默認語言,以便仍然對匿名用戶有用,所以你想你自己的中間件在此之前執行。

+0

我做到了,但我不知道把它放在'MIDDLEWARE_CLASSES'中,我必須刪除'django.middleware.locale.LocaleMiddleware'嗎?另外我不知道如何覆蓋'i18n.set_language()'來獲取存儲在配置文件中的語言。 –

+0

對不起,我錯過了關於set_language的部分,回答更新(有關將中間件放置在設置中的說明,以及讀取Django源代碼之後)。 – jpic

+0

我會嘗試查看覆蓋。另外中間件也必須放在'django.contrib.auth.middleware.AuthenticationMiddleware'後面 –

相關問題