File tree Expand file tree Collapse file tree 2 files changed +24
-1
lines changed Expand file tree Collapse file tree 2 files changed +24
-1
lines changed Original file line number Diff line number Diff line change @@ -1010,7 +1010,9 @@ def get_fields(self):
1010
1010
continue
1011
1011
1012
1012
extra_field_kwargs = extra_kwargs .get (field_name , {})
1013
- source = extra_field_kwargs .get ('source' , '*' ) != '*' or field_name
1013
+ source = extra_field_kwargs .get ('source' , '*' )
1014
+ if source == '*' :
1015
+ source = field_name
1014
1016
1015
1017
# Determine the serializer field class and keyword arguments.
1016
1018
field_class , field_kwargs = self .build_field (
Original file line number Diff line number Diff line change @@ -1135,3 +1135,24 @@ class Meta:
1135
1135
serializer = TestUniqueChoiceSerializer (data = {'name' : 'choice1' })
1136
1136
assert not serializer .is_valid ()
1137
1137
assert serializer .errors == {'name' : ['unique choice model with this name already exists.' ]}
1138
+
1139
+
1140
+ class TestFieldSource (TestCase ):
1141
+ def test_named_field_source (self ):
1142
+ class TestSerializer (serializers .ModelSerializer ):
1143
+
1144
+ class Meta :
1145
+ model = RegularFieldsModel
1146
+ fields = ('number_field' ,)
1147
+ extra_kwargs = {
1148
+ 'number_field' : {
1149
+ 'source' : 'integer_field'
1150
+ }
1151
+ }
1152
+
1153
+ expected = dedent ("""
1154
+ TestSerializer():
1155
+ number_field = IntegerField(source='integer_field')
1156
+ """ )
1157
+ self .maxDiff = None
1158
+ self .assertEqual (unicode_repr (TestSerializer ()), expected )
You can’t perform that action at this time.
0 commit comments