При выборе разных опций отображаются разные входы, но требуются все входы всех опций
Я работаю с Django и я сделал функцию, которая создает человека (сотрудник, студент или рабочий) и как вы можете видеть, я создал три различных формы на create_person, так что на шаблоне, когда вы выбираете опцию на school_role, чтобы выбрать, какой тип человека вы будете создавать, он показывает различные входы и select, это зависит от того, если вы нажмете на студент, академик или сотрудник. Это нормально, но моя проблема в том, что мне нужно заполнить все входы и выбрать все три варианта, чтобы иметь возможность отправить форму, а мне нужно, чтобы вы заполнили только один (сотрудник, академик или студент).
def create_person(request):
if request.method == 'POST':
form = PersonForm(request.POST)
daysform = AvailableDayForm(request.POST)
studentForm = StudentForm(request.POST)
academicForm = AcademicForm(request.POST)
employeeForm = EmployeeForm(request.POST)
if form.is_valid() and daysform.is_valid():
data = form.save()
daysform.save(id=data.id)
id = data.id
if(data.school_role==1):
if studentForm.is_valid():
studentForm.save(id = id)
messages.success(
request=request,
message='success'
)
return redirect('cases:list')
elif(data.school_role == 2):
if academicForm.is_valid():
academicForm.save(id = id)
messages.success(
request=request,
message='success'
)
return redirect('cases:list')
else:
if employeeForm.is_valid():
employeeForm.save(id = id)
messages.success(
request=request,
message='success'
)
return redirect('cases:list')
else:
form = PersonForm()
daysform = AvailableDayForm()
studentForm = StudentForm()
academicForm = AcademicForm()
employeeForm = EmployeeForm()
context = {
'form': form,
'studentForm': studentForm,
'academicForm': academicForm,
'employeeForm': employeeForm,
'daysform': daysform
}
return render(request, 'person/create_person.html', context)
Это шаблон create_person.html:
А это мой скрипт.
function yesnoCheck(that) {
if (that.value == "1") {
document.getElementById("ifStudent").style.display = "block";
} else {
document.getElementById("ifStudent").style.display = "none";
}
if (that.value == "2"){
document.getElementById("ifAcademic").style.display = "block";
} else {
document.getElementById("ifAcademic").style.display = "none";
}
if (that.value == "3"){
document.getElementById("ifWorker").style.display = "block";
}else{
document.getElementById("ifWorker").style.display = "none";
}
}