Skip to content

Change HttpResponse to JsonResponse (for Django 1.9) #18

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# django-ajax-validation
A reusable application to preform ajax validation on django forms.

Fork adapted for Django 1.9.

# Install
```
pip install -e git+https://github.com/applecat/django-ajax-validation.git#egg=django-ajax-validation
```
13 changes: 5 additions & 8 deletions ajax_validation/views.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
from django import forms
from django.http import HttpResponse
from django.http import JsonResponse
from django.views.decorators.http import require_POST
from django.forms.formsets import BaseFormSet

from ajax_validation.utils import LazyEncoder

def validate(request, *args, **kwargs):
form_class = kwargs.pop('form_class')
defaults = {
Expand All @@ -26,7 +24,7 @@ def validate(request, *args, **kwargs):
for f in form.forms:
for field in f.fields.keys():
formfields[f.add_prefix(field)] = f[field]
for field, error in f.errors.iteritems():
for field, error in f.errors.items():
errors[f.add_prefix(field)] = error
if form.non_form_errors():
errors['__all__'] = form.non_form_errors()
Expand All @@ -37,10 +35,10 @@ def validate(request, *args, **kwargs):
# if fields have been specified then restrict the error list
if request.POST.getlist('fields'):
fields = request.POST.getlist('fields') + ['__all__']
errors = dict([(key, val) for key, val in errors.iteritems() if key in fields])
errors = dict([(key, val) for key, val in errors.items() if key in fields])

final_errors = {}
for key, val in errors.iteritems():
for key, val in errors.items():
if '__all__' in key:
final_errors[key] = val
elif not isinstance(formfields[key].field, forms.FileField):
Expand All @@ -51,6 +49,5 @@ def validate(request, *args, **kwargs):
'valid': False or not final_errors,
'errors': final_errors,
}
json_serializer = LazyEncoder()
return HttpResponse(json_serializer.encode(data), mimetype='application/json')
return JsonResponse(data)
validate = require_POST(validate)