Django学習メモ④
Userモデルの参照方法
DjangoデフォルトのUserモデルとのリレーションを行いたい場合にmodels.py上でどう参照するか
【意識すること】
- デフォルトのUserモデルを直接参照しない(後のカスタマイズが困難になる)
- カスタムユーザーモデルを作成して使用すること(最初はデフォルトをまんま継承しても良いので作っておく)
- AUTH_USER_MODEL参照とget_user_model()参照があるが、後者がベター
- カスタムユーザーモデルを作る前にmigrateしないこと(整合性の問題)
【settings.py サンプル】
#カスタムユーザーモデル定義
AUTH_USER_MODEL = 'app名.CustomUser'
※補足
・AUTH_USER_MODELで参照
>settings.pyに書かれたAUTH_USER_MODELを参照する。stringで取ってくるため、views.pyから参照できない
【models.py サンプル】
class WatchedList(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL
・get_user_model()で参照
>現在アクティブなAUTH_USER_MODELを参照しに行く(デフォルト or AUTH_USER_MODELに定義されているカスタムモデル)。classを参照する。
【models.py サンプル】
↓公式ドキュメント