Source code for django_core.views.request

from __future__ import unicode_literals

from django.views.generic.edit import BaseFormView

from ..views.response import JSONResponseMixin


[docs]class ApiFormView(JSONResponseMixin, BaseFormView): """Form view for Api's to leverage forms and correctly validate query string data. """ def get(self, request, *args, **kwargs): form = self.get_form(self.form_class) if form.is_valid(): return self.form_valid(form=form) return self.form_invalid(form=form)
[docs] def get_form_kwargs(self): """Add the 'data' to the form args so you can validate the form data on a get request. """ kwargs = super(ApiFormView, self).get_form_kwargs() kwargs['data'] = kwargs.get('initial') return kwargs
[docs] def form_invalid(self, form, context=None, **kwargs): """This will return the request with form errors as well as any additional context. """ if not context: context = {} context['errors'] = form.errors return super(ApiFormView, self).render_to_response(context=context, status=400)