2012-08-24 3 views
2

i18n.set_language()은 사용자가 언어를 선택하면 user profile에 언어를 저장합니다.Django - 사용자 프로필에 i18n.set_language()를 저장할 수 있습니까?

장고는 내 언어 discover에도 이것을 사용해야합니다.

좋은 생각인가요? 그렇다면 어떻게 할 수 있습니까?

+0

[django-user-accounts] (http://django-user-accounts.readthedocs.org/en/latest/index.html)에서 처리합니다. – jpic

+0

실제로 _django-user-accounts_의 일부분을 수행하는 _django-registration_을 이미 사용하고 있으며 이미 사용자 프로필을 구성했습니다. 그래서 내가 어떻게 수동으로하는지 알고 싶습니다. –

답변

6
  1. How to override a view from an external Django app -> How to override without forking -> Overriding a view

  2. 복사 django-user-accounts middleware "i18n.set_language()가 결국 사용 가능한 사용자 프로필에 언어를 저장"과 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' 뒤에 놓아야합니다. –