Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitaff2c35

Browse files
committed
Revert "Alter read_only+default behaviour (encode#5886)"
This reverts commitc2b24f8.
1 parent9b7db8d commitaff2c35

File tree

4 files changed

+5
-10
lines changed

4 files changed

+5
-10
lines changed

‎docs/api-guide/validators.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,7 @@ A default class that can be used to *only set a default argument during create o
189189
It 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,
192193
default=serializers.CreateOnlyDefault(timezone.now)
193194
)
194195

‎rest_framework/serializers.py‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -367,7 +367,8 @@ def fields(self):
367367
@cached_property
368368
def_writable_fields(self):
369369
return [
370-
fieldforfieldinself.fields.values()ifnotfield.read_only
370+
fieldforfieldinself.fields.values()
371+
if (notfield.read_only)or (field.defaultisnotempty)
371372
]
372373

373374
@cached_property

‎tests/test_fields.py‎

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -217,17 +217,10 @@ def example_callable(self):
217217
classTestReadOnly:
218218
defsetup(self):
219219
classTestSerializer(serializers.Serializer):
220-
read_only=serializers.ReadOnlyField(default="789")
220+
read_only=serializers.ReadOnlyField()
221221
writable=serializers.IntegerField()
222222
self.Serializer=TestSerializer
223223

224-
deftest_writable_fields(self):
225-
"""
226-
Read-only fields should not be writable, even with default ()
227-
"""
228-
serializer=self.Serializer()
229-
assertlen(serializer._writable_fields)==1
230-
231224
deftest_validate_read_only(self):
232225
"""
233226
Read-only serializers.should not be included in validation.

‎tests/test_serializer.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -509,7 +509,7 @@ class ExampleSerializer(serializers.Serializer):
509509
classTestDefaultInclusions:
510510
defsetup(self):
511511
classExampleSerializer(serializers.Serializer):
512-
char=serializers.CharField(default='abc')
512+
char=serializers.CharField(read_only=True,default='abc')
513513
integer=serializers.IntegerField()
514514
self.Serializer=ExampleSerializer
515515

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp