Skip to content

Commit 29b77ce

Browse files
authored
Merge pull request #147 from ticosax/django-2.0-2
Bring support for django 2.0 and drf 3.7
2 parents f19dd14 + ecfb2f6 commit 29b77ce

File tree

14 files changed

+58
-47
lines changed

14 files changed

+58
-47
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,4 @@ tests/static/
1313
/htmlcov
1414
__pycache__/
1515
*.pyc
16-
16+
.tox/

.travis.yml

Lines changed: 14 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -12,29 +12,20 @@ services:
1212

1313
matrix:
1414
include:
15-
- python: 3.6
16-
env: TOXENV=py36-django111
17-
- python: 3.6
18-
env: TOXENV=py36-django110
19-
- python: 3.6
20-
env: TOXENV=py36-django19
21-
- python: 3.6
22-
env: TOXENV=py36-django18
23-
24-
- python: 3.5
25-
env: TOXENV=py35-django110
26-
27-
- python: 3.4
28-
env: TOXENV=py34-django110
29-
30-
- python: 2.7
31-
env: TOXENV=py27-django111
32-
- python: 2.7
33-
env: TOXENV=py27-django110
34-
- python: 2.7
35-
env: TOXENV=py27-django19
36-
- python: 2.7
37-
env: TOXENV=py27-django18
15+
- env: TOXENV=py27-django111
16+
python: 2.7
17+
- env: TOXENV=py34-django111
18+
python: 3.4
19+
- env: TOXENV=py35-django111
20+
python: 3.5
21+
- env: TOXENV=py36-django111
22+
python: 3.6
23+
- env: TOXENV=py34-django20
24+
python: 3.4
25+
- env: TOXENV=py35-django20
26+
python: 3.5
27+
- env: TOXENV=py36-django20
28+
python: 3.6
3829

3930
branches:
4031
only:

README.rst

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,8 @@ Compatibility with DRF, Django and Python
3939

4040
=============== ============================ ==================== ==================================
4141
DRF-gis version DRF version Django version Python version
42-
**0.11.x** **3.1** to **3.6** **1.7** to **1.11** **2.7** to **3.6**
42+
**0.12.x** **3.1** to **3.7** **1.9** to **2.0** **2.7** to **3.6**
43+
**0.11.x** **3.1** to **3.7** **1.7** to **1.11** **2.7** to **3.6**
4344
**0.10.x** **3.1** to **3.3** **1.7** to **1.9** **2.7** to **3.5**
4445
**0.9.6** **3.1** to **3.2** **1.5** to **1.8** **2.6** to **3.5**
4546
**0.9.5** **3.1** to **3.2** **1.5** to **1.8** **2.6** to **3.4**

requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
six
2-
djangorestframework>=3.3,<3.7
2+
djangorestframework>=3.3,<3.8

rest_framework_gis/fields.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from collections import OrderedDict
44

55
from django.contrib.gis.geos import GEOSGeometry, GEOSException
6-
from django.contrib.gis.gdal import OGRException
6+
from django.contrib.gis.gdal import GDALException
77
from django.core.exceptions import ValidationError
88
from django.utils.translation import ugettext_lazy as _
99
from rest_framework.fields import Field, SerializerMethodField
@@ -38,7 +38,7 @@ def to_internal_value(self, value):
3838
value = json.dumps(value)
3939
try:
4040
return GEOSGeometry(value)
41-
except (ValueError, GEOSException, OGRException, TypeError):
41+
except (ValueError, GEOSException, GDALException, TypeError):
4242
raise ValidationError(_('Invalid format: string or unicode input unrecognized as GeoJSON, WKT EWKT or HEXEWKB.'))
4343

4444
def validate_empty_values(self, data):

rest_framework_gis/filters.py

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,18 @@
1818
'restframework-gis filters depend on package "django-filter" '
1919
'which is missing. Install with "pip install django-filter".'
2020
)
21-
22-
try: # pragma: no cover
23-
# django >= 1.8
24-
from django.contrib.gis.db.models.lookups import gis_lookups
25-
except ImportError: # pragma: no cover
26-
# django <= 1.7
27-
gis_lookups = models.sql.query.ALL_TERMS
21+
try:
22+
# Django >= 2.0
23+
from django.contrib.gis.db.models.fields import BaseSpatialField
24+
except ImportError:
25+
try: # pragma: no cover
26+
# django >= 1.8,<2.0
27+
from django.contrib.gis.db.models.lookups import gis_lookups
28+
except ImportError: # pragma: no cover
29+
# django <= 1.7
30+
gis_lookups = models.sql.query.ALL_TERMS
31+
else:
32+
gis_lookups = BaseSpatialField.get_lookups()
2833

2934

3035
__all__ = [

tests/django_restframework_gis_tests/models.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ class BaseModel(models.Model):
1414
slug = models.SlugField(max_length=128, unique=True, blank=True)
1515
timestamp = models.DateTimeField(null=True, blank=True)
1616
geometry = models.GeometryField()
17-
objects = models.GeoManager()
1817

1918
class Meta:
2019
abstract = True

tests/django_restframework_gis_tests/test_bbox.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
import json
22

33
from django.test import TestCase
4-
from django.core.urlresolvers import reverse
4+
try:
5+
from django.urls import reverse
6+
except ImportError:
7+
from django.core.urlresolvers import reverse
58
from django.core.exceptions import ImproperlyConfigured
69

710
from rest_framework_gis import serializers as gis_serializers

tests/django_restframework_gis_tests/test_filters.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,10 @@
66
from django.conf import settings
77
from django.test import TestCase
88
from django.contrib.gis.geos import GEOSGeometry, Polygon
9-
from django.core.urlresolvers import reverse
9+
try:
10+
from django.urls import reverse
11+
except ImportError:
12+
from django.core.urlresolvers import reverse
1013

1114
from .models import Location
1215

tests/django_restframework_gis_tests/test_performance.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,10 @@
77
# or by setting ``settings.TEST_PERFORMANCE`` to ``True``
88
if 'django_restframework_gis_tests.test_performance' in sys.argv or settings.TEST_PERFORMANCE:
99
from django.test import TestCase
10-
from django.core.urlresolvers import reverse
10+
try:
11+
from django.urls import reverse
12+
except ImportError:
13+
from django.core.urlresolvers import reverse
1114
from rest_framework.renderers import JSONRenderer
1215
from rest_framework_gis import serializers as gis_serializers
1316
from contexttimer import Timer

tests/django_restframework_gis_tests/tests.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,10 @@
99

1010
from django.test import TestCase
1111
from django.contrib.gis.geos import GEOSGeometry, Polygon, Point
12-
from django.core.urlresolvers import reverse
12+
try:
13+
from django.urls import reverse
14+
except ImportError:
15+
from django.core.urlresolvers import reverse
1316
from django.core.exceptions import ImproperlyConfigured
1417

1518
from rest_framework_gis import serializers as gis_serializers

tests/django_restframework_gis_tests/views.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1+
from django_filters.rest_framework import DjangoFilterBackend
12
from rest_framework import generics
2-
from rest_framework.filters import DjangoFilterBackend
33
from rest_framework_gis.filters import *
44
from rest_framework_gis.pagination import GeoJsonPagination
55

tests/urls.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
1-
from django.conf.urls import include, url
1+
try:
2+
from django.urls import include, url
3+
except ImportError:
4+
from django.conf.urls import include, url
25
from django.contrib import admin
36
from django.contrib.staticfiles import views
47

58
urlpatterns = [
69
# Uncomment the next line to enable the admin:
7-
url(r'^admin/', include(admin.site.urls)),
10+
url(r'^admin/', admin.site.urls),
811
# Uncomment the admin/doc line below to enable admin documentation:
912
# url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
1013

tox.ini

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
[tox]
2-
envlist = py{27,34,35,36,py,py3}-django{18,19,110,111}{,-pytest}
2+
envlist =
3+
py{27,34,35,36,py,py3}-django111{,-pytest}
4+
py{34,35,36,py3}-django20{,-pytest}
35

46
[testenv]
57
usedevelop = true
@@ -13,10 +15,8 @@ commands =
1315
{env:DRFG_TEST_RUNNER} {posargs:tests/django_restframework_gis_tests}
1416

1517
deps =
16-
django18: Django>=1.8,<1.9
17-
django19: Django>=1.9,<1.10
18-
django110: Django>=1.10,<1.11
1918
django111: Django>=1.11,<2.0
19+
django20: Django>=2.0b1,<2.1
2020
-rrequirements-test.txt
2121
pytest: pytest
2222
pytest: pytest-django

0 commit comments

Comments
 (0)