Мне нужно обновить существующий проект до 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'