【发布时间】:2013-03-06 13:06:38
【问题描述】:
我需要将 现有 项目更新到 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'
【问题讨论】:
标签: django django-south database-migration django-1.5