Как удалить валидацию стандартных полей модели User в Django?

Добрый день, подскажите пожалуйста, каким образом можно удалить стандартную валидацию стандартных полей регистрации Django, допустим пароли должны быть не слишком простыми, имя пользователя может содержать только цифры, буквы, точки, запятые и дефисы. Знаю что для проверки валидации есть метод is_valid, но к сожалению его никак не отменить, выдает ошибку что данные не проверяются, вот мое представление для регистрации ниже где этот метод и используется

from django.shortcuts import render, redirect
from .forms import CustomUserCreationForm
from django.contrib.auth import login, authenticate

def register(request):
    if request.method == 'POST':
        form = CustomUserCreationForm(request.POST)
        if form.is_valid():
            user = form.save()
            login(request, user)
            return redirect('home')
    else:
        form = CustomUserCreationForm()
    return render(request, 'account/registration.html', {'form': form})
  • Вопрос задан
  • 233 просмотра
Пригласить эксперта
Ответы на вопрос 1
@deadghoul
Попробуйте изменить валидаторы стандартной модели юзера Django.
User._meta.get_field('YourField')._validators = []  # Вставьте свои или стандартные валидаторы в список

Но это создаст проблемы в будущем развитии проекта потому что django будет создавать миграции юзера в каталоге виртуального окружения, поэтому нужно немного подредактировать чтобы эту строчку Django не видел при создании миграций
import sys

if 'makemigrations' not in sys.argv and 'migrate' not in sys.argv:
    User._meta.get_field('YourField')._validators = []  # Вставьте свои или стандартные валидаторы в список
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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