ジャンゴ1.5.1
カスタム認証モデルを作成します:
ファイル api/models.py
from django.contrib.auth.models import BaseUserManager, AbstractUser
class User(AbstractUser):
token = models.CharField(max_length=64, null=False, blank=False, help_text=_('Photo for carte'), unique=True)
updated_token = models.DateTimeField(auto_now_add=True, help_text=_('Create record'))
USERNAME_FIELD = 'email'
objects = MyUserManager()
def __unicode__(self):
return "пользователь: %s" % self.email
class Meta:
app_label = 'custom_auth'
ファイル settings.py
AUTH_USER_MODEL = 'custom_auth.User'
.....
INSTALLED_APPS = (
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'api',
.....
'south',
'django.contrib.admin',
)
./manage.py syncdb でエラーが発生します:
admin.logentry: 'user' has a relation with model <class 'api.models.User'>, which has either not been installed or is abstract.
この問題をどのように決定しますか?
編集 1 のコメント行を試して、syncdb を作成します。
'django.contrib.admin',
./manage.py シェルでユーザーの作成を試みた後、syncdb は成功しました
In [1]: from api.models import User
In [2]: User.objects.create_superuser('test@test.com', 'test')
そしてエラーを受け取ります:
DatabaseError: (1146, "Table 'app_name.custom_auth_user' doesn't exist")