def exam_edit(request, pk=None): exam = exams.objects.get(id=pk) exform = ExamForm(instance=exam) subexformmodelset = modelformset_factory(SubExam, form=SubExamForm) subexformset = subexformmodelset( request.POST or None, queryset=SubExam.objects.filter(parent_exam=pk)) if request.method == 'POST': exform = ExamForm(request.POST, instance=exam) if exform.is_valid() and subexformset.is_valid(): exform.save() instances = subexformset.save(commit=False) for subexform in instances: subexform.parent_exam = exam.id subexform.save() return redirect('/exams/dashboard/') else: print(subexformset.errors) return render(request, 'exams/exam_create.html', { 'exform': exform, 'exformset': subexformset })
def exam_add(request): exform = ExamForm() subexformset = modelformset_factory(SubExam, form=SubExamForm, extra=1) subexformset = subexformset( request.POST or None, queryset=SubExam.objects.filter(id__isnull=True)) if request.method == 'POST': exam = exams() exform = ExamForm(request.POST, instance=exam) if exform.is_valid() and subexformset.is_valid(): exform.save() instances = subexformset.save(commit=False) for subexform in instances: subexform.parent_exam = exam.id subexform.save() return redirect('/exams/dashboard/') else: print('invalid data') return render(request, 'exams/exam_create.html', { 'exform': exform, 'exformset': subexformset })
def create_exam(request, course_id): course = Course.objects.get(id=course_id) if Question.objects.filter(course=course).exists(): form = ExamForm(course=course) if request.method == "POST": form = ExamForm(course=course, data=request.POST) if form.is_valid(): exam = form.save(commit=False) exam.course = course exam.save() add_questions(course, exam) messages.success(request, "Exam created successfully!") return redirect("/courses/" + course_id + "/exams/") return render(request, "create_exam.html", {"form": form, "course": course}) messages.error(request, "Course has no questions!") return redirect("/courses/" + course_id)
def create_exam(request, course_id): course = Course.objects.get(id=course_id) if Question.objects.filter(course=course).exists(): form = ExamForm(course=course) if request.method == 'POST': form = ExamForm(course=course, data=request.POST) if form.is_valid(): exam = form.save(commit=False) exam.owner = request.user exam.course = course exam.save() add_questions(course, exam) messages.success(request, 'Exam created successfully!') return redirect('/courses/' + course_id + '/exams/') return render(request, 'create_exam.html', {'form': form, 'course': course }) else: messages.error(request, 'Course has no questions!') return redirect('/courses/' + course_id)
def create_exam(request, course_id): course = Course.objects.get(id=course_id) if Question.objects.filter(course=course).exists(): form = ExamForm(course=course) if request.method == 'POST': form = ExamForm(course=course, data=request.POST) if form.is_valid(): exam = form.save(commit=False) exam.course = course exam.save() add_questions(course, exam) messages.success(request, 'Exam created successfully!') return redirect('/courses/' + course_id + '/exams/') return render(request, 'create_exam.html', { 'form': form, 'course': course }) messages.error(request, 'Course has no questions!') return redirect('/courses/' + course_id)