From d0c1b65632715e8d0aa24260a7a6b1d4d160d847 Mon Sep 17 00:00:00 2001 From: Ching Date: Fri, 15 Nov 2019 17:51:17 +0800 Subject: [PATCH] [U] fix error when post office hour w/o login. returns json error instead. --- timer/forms.py | 2 +- timer/views.py | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/timer/forms.py b/timer/forms.py index bdf4591..8886a0e 100644 --- a/timer/forms.py +++ b/timer/forms.py @@ -15,7 +15,7 @@ class OfficeHoursForm(forms.ModelForm): def full_clean(self): if not self.user.is_authenticated: - raise ValidationError('Invalid User.') + raise forms.ValidationError('Invalid User.') return def save(self): diff --git a/timer/views.py b/timer/views.py index f164e2e..172f262 100644 --- a/timer/views.py +++ b/timer/views.py @@ -1,10 +1,12 @@ from django.contrib.auth.models import User, Group +import django.forms from django.shortcuts import render import django.views.generic from rest_framework import authentication, permissions, status, viewsets from rest_framework.generics import CreateAPIView from rest_framework.response import Response from rest_framework.views import APIView +from django.http import JsonResponse import timer.serializers import timer.models @@ -57,8 +59,11 @@ class OfficeHoursFormView(django.views.generic.FormView): def post(self, request, *args, **kwargs): form = self.form_class(**self.get_form_kwargs()) - if form.is_valid(): + try: + form.is_valid() form.save() + except django.forms.ValidationError as e: + return JsonResponse({'error': e.message}, status=status.HTTP_400_BAD_REQUEST) return super().post(request, *args, **kwargs)