Я пытаюсь создать приложение для викторины, я хочу, чтобы пользователь выбирал темы и топи c и количество вопросов (викторина для каждого). после ввода следующий вид должен быть test / quiz. Я не могу передать несколько параметров / значений в django url. (например, тема / тема / 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})
Мой взгляд работает до выбора темы, фильтра topi c и фильтрации вопросов. когда я отправляю форму следующий URL не работает. Я устал от переменной {srt и int), чтобы передать в URL
path('generate_quiz',views.generate_quiz, name='generate_quiz'),
path('test/<subjects_id>/<topics_id>/<int:mcq_no>',views.test, name='test'),