프로젝트를 Django 1.5로 업데이트해야 새로 사용 가능한 사용자 정의 사용자 모델을 이용할 수 있습니다. 그러나 외래 키가있는 모델을 포함하는 재사용 가능한 앱을 사용자에게 이전하는 데 문제가 있습니다. 현재 외래 키는 auth.User
이지만 사용자 정의 사용자 모델은 myapp.CustomUser
을 가리켜 야합니다. 따라서 일종의 마이그레이션이 필요합니다. 다시 사용할 수있는 앱이기 때문에 마이그레이션 파일을 만들 수 없습니다. 앱이 업데이트 될 때마다 마이 그 레이션을 다시 작성해야한다는 것을 기억해야하기 때문에 (마이 그 레이션 충돌이있을 수 있음) 미래의 증거가되지는 않을 것입니다. 따라서 정확하게 그럴듯한 해결책은 아닙니다.재사용 가능한 장고 응용 프로그램 모델을 사용자 정의 사용자 모델로 마이그레이션하는 데 문제가 있습니다
각 프로젝트를 포크 화하고 마이그레이션 파일을 추가 한 다음 대신이 문제를 해결할 수있는 방법이 있습니까?
일부 코드 : 내 프로젝트 내 프로젝트
from django.conf import settings
from django.contrib.auth.models import AbstractUser
class CustomUser(AbstractUser):
...
settings.py
에서
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
에서
AUTH_USER_MODEL = 'myapp.CustomUser'
나는 남쪽 이주 디렉토리를 리팩토링하는 스크립트를 만들었습니다. 여기 : https://gist.github.com/benjaoming/5605160 – benjaoming
대신에 사용자 = getattr (설정, 'AUTH_USER_MODEL', 'auth.User') ... to = orm과 같은 작업을 수행 할 수 있습니까? [User] ... 'to': orm [ '% s'] "% User? – askvictor
이 솔루션은 실제로 사용자의 런타임 평가 및 해결의 어려움이 있습니다. 따라서 버전 X에서 사이트의 auth.User를 사용하고 버전 Y에서 사용자 정의 모델로 변경하면 즉시 또는 일부 마이그레이션 스크립트가 손상 될 수 있습니다. – mbargiel