def post(self, request): status = 'ok' error = [0, ''] if request.user.is_authenticated(): id = request.POST.get('id', '') tags = request.POST.get('tags', '') text = request.POST.get('text', '') time = request.POST.get('time', '') subject = request.POST.get('subject', '') grade = request.POST.get('grade', '') try: with transaction.atomic(): t = Time.objects.get(id=time) s = Subject.objects.get(id=subject) g = Grade.objects.get(id=grade) try: if id != '' and id != 0 and id != '0': a = MAchievement.objects.get(id=id) else: raise ObjectDoesNotExist except ObjectDoesNotExist as e: a = MAchievement(tags=tags, text=text, time=t, subject=s, grade=g, user=request.user) a.save() else: a.tags = tags a.text = text a.time = t a.subject = s a.grade = g a.user = request.user a.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')