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)