Django создает класс singleton, используя следующий код валидации полей

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

@login_required(login_url='/') def add_student(request): курс = Курс.objects.all() session_year = Session_Year.objects.all()

if request.method == "POST":
    profile_pic = request.FILES.get('profile_pic')
    first_name = request.POST.get('first_name')
    last_name = request.POST.get('last_name')
    email = request.POST.get('email')
    username = request.POST.get('username')
    password = request.POST.get('password')
    address = request.POST.get('address')
    gender = request.POST.get('gender')
    course_id = request.POST.get('course_id')
    session_year_id = request.POST.get('session_year_id')

    #validation for empty first_name
    num = 0
    if not first_name:
        messages.warning(request,'please enter first name')
        #return redirect('add_student')
        num = num+1

    # validation for correct enter first_name
    if not first_name.isalpha() and first_name!="":
        messages.warning(request,'please correct enter first name')
        #return redirect('add_student')
        num = num+1
    
    #validation for empty last_name
    if not last_name:
        messages.warning(request,'please enter last name')
        #return redirect('add_student')
        num = num+1

    # validation for correct enter last_name
    if not last_name.isalpha():
        messages.warning(request,'please correct enter last name')
        #return redirect('add_student')
        num = num+1

    # validation for unique email
    if Customuser.objects.filter(email=email).exists():
       messages.warning(request,'Email Is Already Taken')
       #return redirect('add_student')
       num = num+1

    # validation for unique username
    if Customuser.objects.filter(username=username).exists():
       messages.warning(request,'Username Is Already Taken')
       #return redirect('add_student')
       num = num+1

    if num != 0:
        return redirect('add_student')

Вы рассматривали возможность использования WTForms?

WTForms - это отличная библиотека для валидации форм. Вы можете объединить ее с шаблонизаторами, такими как jinja, для удобного рендеринга полей. Затем вы можете выполнять пользовательскую проверку полей для каждого поля, определенного в вашем объекте WTForms.

Вернуться на верх