def index(request): if request.method == 'POST': form = QuizForm(request.POST) if form.is_valid(): # TODO: Errors must be handled _id = form.cleaned_data["categories"] _category = Category.objects.get( id=_id) # TODO: cleaned data must be used number_of_questions = 6 _questions = _category.get_random_questions(number_of_questions) if len(_questions) == 0: form = QuizForm(request.POST) context_data = { 'form': form, 'error_message': "سوالی در این موضوع وجود ندارد" } return render(request, "quiz_index.html", context_data) print "random questions:" print _questions quiz = Quiz(category=_category) user1 = User.objects.get(username=request.user) quiz.set_user1(user1) user2 = User.objects.order_by('?').first() while user2 == user1: user2 = User.objects.order_by('?').first() quiz.set_user2(user2) quiz.save() quiz.questions = _questions quiz.save() print quiz.questions.all() #for question in _questions: # print "question to be added: " # print question.question # quiz.add_question(question) #quiz.save() # print "quiz questions:" + str(quiz.questions) # print "quiz id: " + str(quiz.id) print user2.email email = EmailMessage('new Challenge', 'quizdown.ir/quiz/start?quiz_id=' + ` quiz.id `, to=[user2.email]) email.send() request.session['_quiz_id'] = json.dumps(quiz.id) request.session['question_index'] = 0 request.session.save() request.session.modified = True return redirect('/quiz/start/') # start(None, quiz.id) # if a GET (or any other method) we'll create a blank form else: form = QuizForm(request.POST) context_data = {'form': form} return render(request, "quiz_index.html", context_data)