2017-09-18 16 views
1

Djangoでビルドインユーザーモデルを拡張したいと考えています。私は、Userから継承したサブクラスを作成するだけでこれを行います。主な問題は、user = request.userを取得すると、このユーザーは、私が作成した新しいサブクラスではなく、組み込みのUserタイプです。 これを行うには何がベストプラクティスですか?ユーザーモデルを拡張するDjangoのベストプラクティス

答えて

5

私はあなたが、ドキュメントextending-the-existing-user-modelでsettings.py詳細に例をAUTH_USER_MODELを追加することを忘れ思う:

AUTH_USER_MODEL = 'myapp.MyUser' 

やコメントで助けによって、あなたはAbstractUserの代わりに使用することについてのベストプラクティス、より良いを話す場合User

from django.contrib.auth.models import AbstractUser 
+1

また、OPではUserではなくAbstractUserを拡張する必要があります。 –

+1

'AUTH_USER_MODEL'を指定した後に' makemigrations'を実行してから 'migrate'を実行することを忘れないでください – IAmKale

+0

私のモデルをAbstractUserから拡張しますが、このエラーを報告します: django.core.exceptions.FieldError:自動生成フィールド 'user_ptr'クラス 'User'とparent_linkの 'CustomUser'が同じ名前の宣言されたフィールドと衝突します。 –

関連する問題