File tree Expand file tree Collapse file tree 3 files changed +5
-17
lines changed Expand file tree Collapse file tree 3 files changed +5
-17
lines changed Original file line number Diff line number Diff line change @@ -115,23 +115,13 @@ def _resolve_model(obj):
115
115
raise ValueError ("{0} is not a Django model" .format (obj ))
116
116
117
117
118
-
119
- # TODO: Remove
120
- # contrib.postgres only supported from 1.8 onwards.
118
+ # django.contrib.postgres requires psycopg2
121
119
try :
122
120
from django .contrib .postgres import fields as postgres_fields
123
121
except ImportError :
124
122
postgres_fields = None
125
123
126
124
127
- # TODO: Remove
128
- # JSONField is only supported from 1.9 onwards
129
- try :
130
- from django .contrib .postgres .fields import JSONField
131
- except ImportError :
132
- JSONField = None
133
-
134
-
135
125
# coreapi is optional (Note that uritemplate is a dependency of coreapi)
136
126
try :
137
127
import coreapi
@@ -298,7 +288,7 @@ class CustomValidatorMessage(object):
298
288
"""
299
289
We need to avoid evaluation of `lazy` translated `message` in `django.core.validators.BaseValidator.__init__`.
300
290
https://github.com/django/django/blob/75ed5900321d170debef4ac452b8b3cf8a1c2384/django/core/validators.py#L297
301
-
291
+
302
292
Ref: https://github.com/encode/django-rest-framework/pull/5452
303
293
"""
304
294
def __init__ (self , * args , ** kwargs ):
Original file line number Diff line number Diff line change 27
27
from django .utils .functional import cached_property
28
28
from django .utils .translation import ugettext_lazy as _
29
29
30
- from rest_framework .compat import JSONField as ModelJSONField
31
30
from rest_framework .compat import postgres_fields , set_many , unicode_to_repr
32
31
from rest_framework .exceptions import ErrorDetail , ValidationError
33
32
from rest_framework .fields import get_error_detail , set_value
@@ -861,8 +860,6 @@ class ModelSerializer(Serializer):
861
860
}
862
861
if ModelDurationField is not None :
863
862
serializer_field_mapping [ModelDurationField ] = DurationField
864
- if ModelJSONField is not None :
865
- serializer_field_mapping [ModelJSONField ] = JSONField
866
863
serializer_related_field = PrimaryKeyRelatedField
867
864
serializer_related_to_field = SlugRelatedField
868
865
serializer_url_field = HyperlinkedIdentityField
@@ -1532,6 +1529,7 @@ class CharMappingField(DictField):
1532
1529
1533
1530
ModelSerializer .serializer_field_mapping [postgres_fields .HStoreField ] = CharMappingField
1534
1531
ModelSerializer .serializer_field_mapping [postgres_fields .ArrayField ] = ListField
1532
+ ModelSerializer .serializer_field_mapping [postgres_fields .JSONField ] = JSONField
1535
1533
1536
1534
1537
1535
class HyperlinkedModelSerializer (ModelSerializer ):
Original file line number Diff line number Diff line change 8
8
from django .db import models
9
9
from django .utils .text import capfirst
10
10
11
- from rest_framework .compat import DecimalValidator , JSONField
11
+ from rest_framework .compat import DecimalValidator , postgres_fields
12
12
from rest_framework .validators import UniqueValidator
13
13
14
14
NUMERIC_FIELD_TYPES = (
@@ -88,7 +88,7 @@ def get_field_kwargs(field_name, model_field):
88
88
if decimal_places is not None :
89
89
kwargs ['decimal_places' ] = decimal_places
90
90
91
- if isinstance (model_field , models .TextField ) or (JSONField and isinstance (model_field , JSONField )):
91
+ if isinstance (model_field , models .TextField ) or (postgres_fields and isinstance (model_field , postgres_fields . JSONField )):
92
92
kwargs ['style' ] = {'base_template' : 'textarea.html' }
93
93
94
94
if isinstance (model_field , models .AutoField ) or not model_field .editable :
You can’t perform that action at this time.
0 commit comments