def edit_question(request, t_id, q_id): test = get_object_or_404(Test, id=t_id) question = get_object_or_404(Query, id=q_id) login = check_sign_in(request) if test.creator == auth.get_user(request): if request.method == 'POST': #отправляем model return HttpResponse(json.dumps(model_to_dict(question))) elif request.method == 'PUT': #парсим put запрос data = put(request) #обновляем данные question.help = data.get('help') question.point = int(data.get('point')) question.text = data.get('text') question.save() return HttpResponse(json.dumps(data)) elif request.method == 'GET': return render_to_response('add_query.html', { 'login': login, 'test': test, 'question': question } ) 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: raise Http404('Вы не являетесь создателем данного теста!')