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
189
189
It takes a single argument, which is the default value or callable that should be used during create operations.
190
190
191
191
created_at = serializers.DateTimeField(
192
- read_only=True,
193
192
default=serializers.CreateOnlyDefault(timezone.now)
194
193
)
195
194
Original file line number Diff line number Diff line change @@ -367,8 +367,7 @@ def fields(self):
367
367
@cached_property
368
368
def _writable_fields (self ):
369
369
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
372
371
]
373
372
374
373
@cached_property
Original file line number Diff line number Diff line change @@ -219,10 +219,17 @@ def example_callable(self):
219
219
class TestReadOnly :
220
220
def setup (self ):
221
221
class TestSerializer (serializers .Serializer ):
222
- read_only = serializers .ReadOnlyField ()
222
+ read_only = serializers .ReadOnlyField (default = "789" )
223
223
writable = serializers .IntegerField ()
224
224
self .Serializer = TestSerializer
225
225
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
+
226
233
def test_validate_read_only (self ):
227
234
"""
228
235
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):
513
513
class TestDefaultInclusions :
514
514
def setup (self ):
515
515
class ExampleSerializer (serializers .Serializer ):
516
- char = serializers .CharField (read_only = True , default = 'abc' )
516
+ char = serializers .CharField (default = 'abc' )
517
517
integer = serializers .IntegerField ()
518
518
self .Serializer = ExampleSerializer
519
519
You can’t perform that action at this time.
0 commit comments