diff --git a/searchableselect/views.py b/searchableselect/views.py index 4dcc6b4..5d2a99e 100644 --- a/searchableselect/views.py +++ b/searchableselect/views.py @@ -1,13 +1,40 @@ try: # Django <=1.9 from django.db.models.loading import get_model + + # Django 1.6.* + import django + if django.VERSION[0] == 1 and django.VERSION[1] == 6: + def get_model_wrapper(model): + get_model(*model.split('.')) + + get_model = get_model_wrapper + except ImportError: # Django 1.10+ from django.apps import apps get_model = apps.get_model from django.utils.encoding import smart_str -from django.http import JsonResponse +from django.http import HttpResponse + +try: + from django.http import JsonResponse +except ImportError as e: + # Django < 1.7 + from django.utils import simplejson + class JsonResponse(HttpResponse): + """ + JSON response + """ + def __init__(self, content, mimetype='application/json', status=None, content_type=None): + super(JsonResponse, self).__init__( + content=simplejson.dumps(content), + mimetype=mimetype, + status=status, + content_type=content_type, + ) + from django.contrib.admin.views.decorators import staff_member_required diff --git a/searchableselect/widgets.py b/searchableselect/widgets.py index 294a2a6..62612b9 100644 --- a/searchableselect/widgets.py +++ b/searchableselect/widgets.py @@ -3,6 +3,15 @@ try: # Django <=1.9 from django.db.models.loading import get_model + + # Django 1.6.* + import django + if django.VERSION[0] == 1 and django.VERSION[1] == 6: + def get_model_wrapper(model): + get_model(*model.split('.')) + + get_model = get_model_wrapper + except ImportError: # Django 1.10+ from django.apps import apps