def update_quiz(request, id): data = json.loads(request.raw_post_data) quiz = Quiz.objects.get(id=id) quiz.title = data.get("title", quiz.title) quiz.subtitle = data.get("subtitle", quiz.subtitle) quiz.text = data.get("text", quiz.text) quiz.email = data.get("email", quiz.email) qids = [] for qd in data.get("questions", []): qid = qd.get("id", None) if not qid: q = Question(index=qd['index'], text=qd.get('text', ''), choices=json.dumps(qd.get('choices', {})), explanation=qd.get('explanation'), correct=qd.get('correct', '')) q.save() qids.append(q.id) quiz.questions.add(q) else: q = Question.objects.get(id=qid) q.text = qd.get('text', '') q.choices = json.dumps(qd['choices']) q.correct = qd.get('correct', '') q.explanation = qd.get('explanation') q.index = qd['index'] qids.append(q.id) q.save() # Look for questions that don't exist and delete them for q in Question.objects.filter(quiz=quiz): if not q.id in qids: q.delete() quiz.save() return retrieve_quiz(request, id)
def test_can_save_question_to_database(self): first_question = Question() first_question.text = '1 + 1 = 2' first_question.ans = 'True' first_question.save() saved_items = Question.objects.all() self.assertEqual(saved_items.count(), 1) second_question = Question() second_question.text = '1 = 2' second_question.ans = 'False' second_question.save() saved_items = Question.objects.all() self.assertEqual(saved_items.count(), 2) self.assertEqual(Question.objects.all()[0].text, '1 + 1 = 2') self.assertEqual(Question.objects.all()[1].text, '1 = 2')
def home_page(request): if request.method == 'POST': q = Question() question_text = request.POST.get('question_text', '') ans = request.POST.get('ans', '') q.text = question_text q.ans = ans q.save() return redirect('/') questions = Question.objects.all() return render(request, 'quiz/home.html', {'questions': questions})
def home_page(request): if request.method == 'POST': q = Question() question_text = request.POST.get('question_text','') ans = request.POST.get('ans','') q.text = question_text q.ans = ans q.save() return redirect('/') questions = Question.objects.all() return render(request, 'quiz/home.html', {'questions':questions})
def update_quiz(request, id): data = json.loads(request.raw_post_data) quiz = Quiz.objects.get(id=id) quiz.title = data.get("title", quiz.title) quiz.subtitle = data.get("subtitle", quiz.subtitle) quiz.text = data.get("text", quiz.text) quiz.email = data.get("email", quiz.email) qids = [] for qd in data.get("questions",[]): qid = qd.get("id", None) if not qid: q = Question( index=qd['index'], text=qd.get('text',''), choices=json.dumps(qd.get('choices',{})), explanation=qd.get('explanation'), correct=qd.get('correct','') ) q.save() qids.append(q.id) quiz.questions.add(q) else: q = Question.objects.get(id=qid) q.text = qd.get('text','') q.choices = json.dumps(qd['choices']) q.correct = qd.get('correct','') q.explanation = qd.get('explanation') q.index = qd['index'] qids.append(q.id) q.save() # Look for questions that don't exist and delete them for q in Question.objects.filter(quiz=quiz): if not q.id in qids: q.delete() quiz.save() return retrieve_quiz(request, id)