i am trying to make quiz app, i want make user to select subjects and topic and number of questions(genrate quiz). after input next view should be test/quiz .i am unable to pass the multiple parameter/values to django url. (e.g subject/topic/no_of_question)
def generate_quiz(request):
if request.method == 'GET':
subjects = Subject.objects.all()
topics = Topic.objects.all()
return render(request, 'mcq/quizetting.html', {'subjects':subjects,'topics':topics})
if request.method == 'POST':
subject_id = request.POST.get("subject", "")
topic_id = request.POST.get("topic", "")
mcq_no = request.POST.get("mcq_no", "")
subjects = Subject.objects.all
if subject_id != '':
if topic_id != '':
if mcq_no >= 10 and mcq_no <150:
return HttpResponseRedirect(reverse('test', kwargs=['subject':subject_id, ]))
else:
return render(request, 'mcq/quizetting.html', {'subjects':subjects,'topics':topics})
else :
topics = Subject.objects.get(id=subject_id).topic_set.all()
else:
topics = Topic.objects.all()
subject_id = str(subject_id)
return render(request, 'mcq/quizetting.html', {'subjects':subjects,'topics':topics, 'current_subject_id':subject_id})
def test(request, subject, topic, mcq_no):
s = Subject.objects.get(id=subject)
t = Topic.objects.get(id=topic)
selected_questions = Question.objects.filter(subject=s, topic=t)[:mcq_no]
return render(request, 'mcq/test.html', {'questions':selected_questions})
my view is working upto subject selection,topic filter and question filtration. when i submit form next url is not working. i have tired both {srt and int) variable to pass in url
path('generate_quiz',views.generate_quiz, name='generate_quiz'),
path('test/<subjects_id>/<topics_id>/<int:mcq_no>',views.test, name='test'),