diff --git a/InvenTree/InvenTree/views.py b/InvenTree/InvenTree/views.py
index 2cbefdfb6c..b59f0910a6 100644
--- a/InvenTree/InvenTree/views.py
+++ b/InvenTree/InvenTree/views.py
@@ -4,6 +4,7 @@ from __future__ import unicode_literals
 from django.template.loader import render_to_string
 from django.http import JsonResponse
 
+from django.views import View
 from django.views.generic import UpdateView, CreateView, DeleteView
 from rest_framework import views
 from django.http import JsonResponse
@@ -49,12 +50,15 @@ class TreeSerializer(views.APIView):
         return JsonResponse(response, safe=False)
 
 
-class AjaxView(object):
+class AjaxMixin(object):
 
     ajax_form_action = ''
     ajax_form_title = ''
     ajax_submit_text = 'Submit'
 
+    def get_data(self):
+        return {}
+
     def getAjaxTemplate(self):
         if hasattr(self, 'ajax_template_name'):
             return self.ajax_template_name
@@ -63,8 +67,10 @@ class AjaxView(object):
 
     def renderJsonResponse(self, request, form, data={}):
 
-        context = {'form': form
-                   }
+        context = {}
+
+        if form:
+            context['form'] = form
 
         data['title'] = self.ajax_form_title
 
@@ -76,10 +82,27 @@ class AjaxView(object):
             request=request
         )
 
-        return JsonResponse(data)
+        # Custom feedback`data
+        fb = self.get_data()
+
+        for key in fb.keys():
+            data[key] = fb[key]
+
+        return JsonResponse(data, safe=False)
 
 
-class AjaxCreateView(AjaxView, CreateView):
+class AjaxView(AjaxMixin, View):
+    """ Bare-bones AjaxView """
+
+    def post(self, request, *args, **kwargs):
+        return JsonResponse('', safe=False)
+
+    def get(self, request, *args, **kwargs):
+
+        return self.renderJsonResponse(request, None)
+
+
+class AjaxCreateView(AjaxMixin, CreateView):
 
     def post(self, request, *args, **kwargs):
 
@@ -114,7 +137,7 @@ class AjaxCreateView(AjaxView, CreateView):
             return response
 
 
-class AjaxUpdateView(AjaxView, UpdateView):
+class AjaxUpdateView(AjaxMixin, UpdateView):
 
     def post(self, request, *args, **kwargs):
 
@@ -148,7 +171,7 @@ class AjaxUpdateView(AjaxView, UpdateView):
             return response
 
 
-class AjaxDeleteView(AjaxView, DeleteView):
+class AjaxDeleteView(AjaxMixin, DeleteView):
 
     def post(self, request, *args, **kwargs):
 
@@ -160,7 +183,7 @@ class AjaxDeleteView(AjaxView, DeleteView):
             data = {'id': pk,
                     'delete': True}
 
-            return JsonResponse(data)
+            return self.renderJsonResponse(request, None, data)
 
         else:
             return super(DeleteView, self).post(request, *args, **kwargs)