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('Вы не являетесь создателем данного теста!')
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('Вы не являетесь создателем данного теста!')