Как переопределить пользовательское поле модели по умолчанию в Django?

Проблемой является модель 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/...)

5
задан Community 23 May 2017 в 12:00
поделиться

1 ответ

Об этом уже спрашивали ... Как сделать поле электронной почты уникальным в модели User из contrib.auth в Django

Также метод django дополнительные пользовательские данные находятся здесь http://docs.djangoproject.com/en/dev/topics/auth/#auth-profiles .

Я не совсем фанат этого метода и понимаю, откуда вы пришли, но иногда вам нужно идти со стадом.

3
ответ дан 15 December 2019 в 06:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: