Проблемой является модель User по умолчанию, не имеет некоторых очень полезных опций данными полям, например, unique=True к почтовому полю.
Я считал этот вопрос: метод модели User значения по умолчанию Переопределения и проверенное Образцовое понятие Прокси, но без эффекта.
Сначала я попробовал:
from django.contrib.auth import models
class User(models.User):
class Meta:
proxy = True
email = EmailField('e-mail address', unique=True, blank=False)
который привел к:
django.core.exceptions.FieldError: Proxy model 'User' contains model fields.
таким образом, затем был:
from django.contrib.auth import models
class User(models.User):
class Meta:
proxy = True
models.User.email = EmailField('e-mail address', unique=True, blank=False)
и это "решение" не имеет никакого эффекта вообще. Модель User по умолчанию вела себя то же как прежде.
Я интересуюсь non-monkey-patching-solution только.
Править: Хорошо. Исправление обезьяны приемлемо для меня, но как делают это обоснованно? (Я означаю не изменять файл, который находится в /usr/pyshared/python2.6/...
)
Об этом уже спрашивали ... Как сделать поле электронной почты уникальным в модели User из contrib.auth в Django
Также метод django дополнительные пользовательские данные находятся здесь http://docs.djangoproject.com/en/dev/topics/auth/#auth-profiles .
Я не совсем фанат этого метода и понимаю, откуда вы пришли, но иногда вам нужно идти со стадом.