示例#1
0
def add_query(request, id):
	test = get_object_or_404(Test, id=int(id))
	user = auth.get_user(request)
	if test.creator == user:
		#кодим тут (когда все True)
		if request.is_ajax():
			query = Query(
				test = test,
				text = request.POST['text'],
				point = request.POST['point'],
				help = request.POST['help'],
				time = request.POST['time']
			)

			query.save()
			for data_answer in json.loads(request.POST['answers']):
				answer = Answer(
					query = query,
					text = data_answer['text'],
					correct = data_answer['correct']
				)

				answer.save()

			return JsonResponse({'complite': True})
		else:	
			return render_to_response('add_query.html', {'login': user, 'test': test})
	else:
		raise Http404('Вы не являетесь создателем данного теста!')
示例#2
0
def question_actions(request, qid, aid):
	question = get_object_or_404(Query, id=qid)
	if question.test.creator == auth.get_user(request):
		if request.method == 'DELETE':
			answer = get_object_or_404(Answer, query=qid, id=aid)
			answer.delete()
			return JsonResponse({'msg':'delete'})
		elif request.method == 'PUT':
			answer = get_object_or_404(Answer, query=qid, id=aid)
			#парсим put запрос
			data = put(request)
			#обновляем данные
			answer.text = data.get('text')
			answer.correct = data.get('correct')
			answer.save()

			return JsonResponse({'msg':'success'})
		elif request.method == 'POST':
			question = get_object_or_404(Query, id=qid)
			answer = Answer(query=question)

			answer.save()
			return JsonResponse({'id': answer.id})

		#достаем коллекцию овтетов данного вопроса
		elif request.method == 'GET':
			question = get_object_or_404(Query, id=qid)
			answers = Answer.objects.filter(query=question)
			response = []
			#получаем поля модели в json формате и сразу парсим
			answers = json.loads(serializers.serialize('json', answers))
			#формируем модели
			for answer in answers:
				data = answer.get('fields')
				data['id'] = answer.get('pk')
				response.append(data)
			#возвращаем модели в JSON формате
			return HttpResponse(json.dumps(response))
	else:
		return Http404('Вы не являетесь создателем данного теста!')