Как изменить регистрацию max_length в Django? - PullRequest
0 голосов
/ 26 мая 2020

В файле 0008_alter_user_username_max_length.py в качестве миграции отображается текст справки для шаблона регистрации, а также максимальная длина имени пользователя для имен. Однако изменение этого файла и последующий запуск миграции не работают. Что я сделал и как изменить имя пользователя max_length и help_text?

1 Ответ

1 голос
/ 26 мая 2020

Модель User и миграции находятся на стороне Django, вы не можете просто изменить эти миграции.

Если вы хотите изменить что-то в модели User, вам необходимо создать настраиваемый пользователь. Если единственное, что вы хотите сделать, это изменить максимальную длину имени пользователя, это не так сложно. Этого должно быть достаточно:

from django.contrib.auth.models import AbstractUser

class MyUser(AbstractUser):
    username = models.CharField(
        _('username'),
        max_length=1000,  # Or whatever.
        unique=True,
        help_text=_('Required. 1000 characters or fewer. Letters, digits and @/./+/-/_ only.'),
        validators=[username_validator],
        error_messages={
            'unique': _("A user with that username already exists."),
        },
    )

Вы захотите взять поле имени пользователя из кода Django, чтобы получить весь текст справки, валидаторы и т. Д. c., Это из текущего мастера.

Затем вам нужно установить это в settings.py:

AUTH_USER_MODEL = "my_app.MyUser"

Это будет надежно работать только для новых проектов. Если у вас есть существующий проект или вы не хотите создавать свою собственную модель пользователя, и вы хотите ограничить max_length ниже той, которая есть в модели, вы можете выполнить эту проверку в своей форме вместо модель.

Документация по замене / et c. модель пользователя .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...