File tree Expand file tree Collapse file tree 4 files changed +10
-5
lines changed
Expand file tree Collapse file tree 4 files changed +10
-5
lines changed Original file line number Diff line number Diff line change @@ -189,7 +189,6 @@ A default class that can be used to *only set a default argument during create o
189189It takes a single argument, which is the default value or callable that should be used during create operations.
190190
191191 created_at = serializers.DateTimeField(
192- read_only=True,
193192 default=serializers.CreateOnlyDefault(timezone.now)
194193 )
195194
Original file line number Diff line number Diff line change @@ -367,8 +367,7 @@ def fields(self):
367367 @cached_property
368368 def _writable_fields (self ):
369369 return [
370- field for field in self .fields .values ()
371- if (not field .read_only ) or (field .default is not empty )
370+ field for field in self .fields .values () if not field .read_only
372371 ]
373372
374373 @cached_property
Original file line number Diff line number Diff line change @@ -219,10 +219,17 @@ def example_callable(self):
219219class TestReadOnly :
220220 def setup (self ):
221221 class TestSerializer (serializers .Serializer ):
222- read_only = serializers .ReadOnlyField ()
222+ read_only = serializers .ReadOnlyField (default = "789" )
223223 writable = serializers .IntegerField ()
224224 self .Serializer = TestSerializer
225225
226+ def test_writable_fields (self ):
227+ """
228+ Read-only fields should not be writable, even with default ()
229+ """
230+ serializer = self .Serializer ()
231+ assert len (serializer ._writable_fields ) == 1
232+
226233 def test_validate_read_only (self ):
227234 """
228235 Read-only serializers.should not be included in validation.
Original file line number Diff line number Diff line change @@ -513,7 +513,7 @@ class ExampleSerializer(serializers.Serializer):
513513class TestDefaultInclusions :
514514 def setup (self ):
515515 class ExampleSerializer (serializers .Serializer ):
516- char = serializers .CharField (read_only = True , default = 'abc' )
516+ char = serializers .CharField (default = 'abc' )
517517 integer = serializers .IntegerField ()
518518 self .Serializer = ExampleSerializer
519519
You can’t perform that action at this time.
0 commit comments