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.