def post(self, request): status = 'ok' error = [0, ''] if request.user.is_authenticated(): id = request.POST.get('id', '') name = request.POST.get('name', '') lastname = request.POST.get('lastname', '') grade = request.POST.get('grade', '') group = request.POST.get('group', '') note = request.POST.get('note', '') try: with transaction.atomic(): gra = Grade.objects.get(id=grade) gro = Group.objects.get(id=group) try: if id != '' and id != 0 and id != '0': s = MStudent.objects.get(id=id) else: raise ObjectDoesNotExist except ObjectDoesNotExist as e: s = MStudent(name=name, lastname=lastname, grade=gra, group=gro, note=note, user=request.user) s.save() else: s.name = name s.lastname = lastname s.grade = gra s.group = gro s.note = note s.user = request.user s.save() except IntegrityError as e: status = 'fail' error = e.args except: status = 'fail' error = [100, 'error inesperado'] else: status = 'fail' error = [401, 'permiso denegado'] return HttpResponse(json.dumps({'status':status, 'error':error}), content_type='application/json')