From 910a31a9cccfac1e91a9bf99ae7e734d7a3929d9 Mon Sep 17 00:00:00 2001 From: nbytes Date: Wed, 4 Jul 2018 04:11:39 +0300 Subject: [PATCH 1/3] Add Django 1.6 compatibility --- searchableselect/views.py | 9 +++++++++ searchableselect/widgets.py | 9 +++++++++ 2 files changed, 18 insertions(+) diff --git a/searchableselect/views.py b/searchableselect/views.py index 4dcc6b4..c4f0459 100644 --- a/searchableselect/views.py +++ b/searchableselect/views.py @@ -1,6 +1,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 == 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 diff --git a/searchableselect/widgets.py b/searchableselect/widgets.py index 294a2a6..8b2ce2b 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 == 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 From fca75a38dcea23eefcf90f08fbf79d5f43f34443 Mon Sep 17 00:00:00 2001 From: nbytes Date: Wed, 4 Jul 2018 04:16:57 +0300 Subject: [PATCH 2/3] Add JsonResponse for django 1.6 and lower --- searchableselect/views.py | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/searchableselect/views.py b/searchableselect/views.py index c4f0459..50c0a90 100644 --- a/searchableselect/views.py +++ b/searchableselect/views.py @@ -16,7 +16,25 @@ def get_model_wrapper(model): 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 From da3c5bb246ff74a94e6924feea1a65a77ca3ce40 Mon Sep 17 00:00:00 2001 From: nbytes Date: Wed, 4 Jul 2018 11:31:28 +0300 Subject: [PATCH 3/3] Fix check Django version --- searchableselect/views.py | 2 +- searchableselect/widgets.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/searchableselect/views.py b/searchableselect/views.py index 50c0a90..5d2a99e 100644 --- a/searchableselect/views.py +++ b/searchableselect/views.py @@ -4,7 +4,7 @@ # Django 1.6.* import django - if django.VERSION[0] == 1 and django.VERSION == 6: + if django.VERSION[0] == 1 and django.VERSION[1] == 6: def get_model_wrapper(model): get_model(*model.split('.')) diff --git a/searchableselect/widgets.py b/searchableselect/widgets.py index 8b2ce2b..62612b9 100644 --- a/searchableselect/widgets.py +++ b/searchableselect/widgets.py @@ -6,7 +6,7 @@ # Django 1.6.* import django - if django.VERSION[0] == 1 and django.VERSION == 6: + if django.VERSION[0] == 1 and django.VERSION[1] == 6: def get_model_wrapper(model): get_model(*model.split('.'))