def add_notification(request): if request.method == "POST": form_data = JSONMiddleware() form_data.process_request(request) notification_instance = Notification() # if the user has failed to enter required form data return Key Error as error and status 500 try: notification_obj = NotificationType.objects.get(id=request.POST['notification_type']) notification_instance.notification_type = notification_obj notification_instance.notification_title = request.POST['notification_name'] notification_instance.notification_subject = request.POST['subject'] notification_instance.notification_body = request.POST['body'] print notification_instance except (ValueError, KeyError): return HttpResponse(json.dumps({'error':'Key Error'}), status=500) # if the user input data fails validation return Validation Error as error and status 500 try: notification_instance.full_clean() notification_instance.save() notification_contacts = request.POST.getlist('notification_contacts') notification_instance.notification_contacts.add(*notification_contacts) except ValidationError as error: return HttpResponse(json.dumps({'error':'Validation Error'}), status=500) return redirect('notification')