コード例 #1
0
ファイル: views.py プロジェクト: idreyn/achieve-backend
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)
コード例 #2
0
ファイル: views.py プロジェクト: idreyn/achieve-backend
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)