File tree Expand file tree Collapse file tree 4 files changed +5
-10
lines changed Expand file tree Collapse file tree 4 files changed +5
-10
lines changed Original file line number Diff line number Diff line change @@ -189,6 +189,7 @@ 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,
192
193
default=serializers.CreateOnlyDefault(timezone.now)
193
194
)
194
195
Original file line number Diff line number Diff line change @@ -367,7 +367,8 @@ def fields(self):
367
367
@cached_property
368
368
def _writable_fields (self ):
369
369
return [
370
- field for field in self .fields .values () if not field .read_only
370
+ field for field in self .fields .values ()
371
+ if (not field .read_only ) or (field .default is not empty )
371
372
]
372
373
373
374
@cached_property
Original file line number Diff line number Diff line change @@ -217,17 +217,10 @@ def example_callable(self):
217
217
class TestReadOnly :
218
218
def setup (self ):
219
219
class TestSerializer (serializers .Serializer ):
220
- read_only = serializers .ReadOnlyField (default = "789" )
220
+ read_only = serializers .ReadOnlyField ()
221
221
writable = serializers .IntegerField ()
222
222
self .Serializer = TestSerializer
223
223
224
- def test_writable_fields (self ):
225
- """
226
- Read-only fields should not be writable, even with default ()
227
- """
228
- serializer = self .Serializer ()
229
- assert len (serializer ._writable_fields ) == 1
230
-
231
224
def test_validate_read_only (self ):
232
225
"""
233
226
Read-only serializers.should not be included in validation.
Original file line number Diff line number Diff line change @@ -509,7 +509,7 @@ class ExampleSerializer(serializers.Serializer):
509
509
class TestDefaultInclusions :
510
510
def setup (self ):
511
511
class ExampleSerializer (serializers .Serializer ):
512
- char = serializers .CharField (default = 'abc' )
512
+ char = serializers .CharField (read_only = True , default = 'abc' )
513
513
integer = serializers .IntegerField ()
514
514
self .Serializer = ExampleSerializer
515
515
You can’t perform that action at this time.
0 commit comments