新しく利用可能になったカスタム ユーザー モデルを利用するには、既存のプロジェクトを Django 1.5に更新する必要があります。ただし、外部キーを持つモデルを含む再利用可能なアプリをユーザーに移行するのに問題があります。現在、外部キーは を指してauth.User
いますが、カスタム ユーザー モデルでは、 を指す必要がありますmyapp.CustomUser
。したがって、ある種の移行が必要です。再利用可能なアプリであるため、単純に移行ファイルを作成することはできません。アプリが更新されるたびに、その移行を再度作成することを覚えておく必要があるため (移行の競合が発生する可能性もあります)、将来の保証にはなりません。したがって、これはもっともらしい解決策ではありません。
おそらく、各プロジェクトをフォークし、移行ファイルを追加してから、代わりにそれを使用する以外に、この問題の解決策はありますか?
いくつかのコード:
models.py
再利用可能なアプリで
from django.conf import settings
from django.db import models
UserModel = getattr(settings, 'AUTH_USER_MODEL', 'auth.User')
class ModelA(models.Model):
user = models.ForeignKey(UserModel)
models.py
私のプロジェクトで
from django.conf import settings
from django.contrib.auth.models import AbstractUser
class CustomUser(AbstractUser):
...
settings.py
私のプロジェクトで
AUTH_USER_MODEL = 'myapp.CustomUser'