Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
D
django-rest-framework
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
edx
django-rest-framework
Commits
af88a5b1
Commit
af88a5b1
authored
May 15, 2013
by
Tom Christie
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Test and fix which closes #652.
parent
092d5223
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
25 additions
and
1 deletions
+25
-1
rest_framework/serializers.py
+7
-1
rest_framework/tests/serializer.py
+18
-0
No files found.
rest_framework/serializers.py
View file @
af88a5b1
...
...
@@ -649,8 +649,14 @@ class ModelSerializer(Serializer):
# Add the `read_only` flag to any fields that have bee specified
# in the `read_only_fields` option
for
field_name
in
self
.
opts
.
read_only_fields
:
assert
field_name
not
in
self
.
base_fields
.
keys
(),
\
"field '
%
s' on serializer '
%
s' specfied in "
\
"`read_only_fields`, but also added "
\
"as an explict field. Remove it from `read_only_fields`."
%
\
(
field_name
,
self
.
__class__
.
__name__
)
assert
field_name
in
ret
,
\
"read_only_fields on '
%
s' included invalid item '
%
s'"
%
\
"Noexistant field '
%
s' specified in `read_only_fields` "
\
"on serializer '
%
s'."
%
\
(
self
.
__class__
.
__name__
,
field_name
)
ret
[
field_name
]
.
read_only
=
True
...
...
rest_framework/tests/serializer.py
View file @
af88a5b1
...
...
@@ -78,6 +78,18 @@ class PersonSerializer(serializers.ModelSerializer):
read_only_fields
=
(
'age'
,)
class
PersonSerializerInvalidReadOnly
(
serializers
.
ModelSerializer
):
"""
Testing for #652.
"""
info
=
serializers
.
Field
(
source
=
'info'
)
class
Meta
:
model
=
Person
fields
=
(
'name'
,
'age'
,
'info'
)
read_only_fields
=
(
'age'
,
'info'
)
class
AlbumsSerializer
(
serializers
.
ModelSerializer
):
class
Meta
:
...
...
@@ -189,6 +201,12 @@ class BasicTests(TestCase):
# Assert age is unchanged (35)
self
.
assertEqual
(
instance
.
age
,
self
.
person_data
[
'age'
])
def
test_invalid_read_only_fields
(
self
):
"""
Regression test for #652.
"""
self
.
assertRaises
(
AssertionError
,
PersonSerializerInvalidReadOnly
,
[])
class
DictStyleSerializer
(
serializers
.
Serializer
):
"""
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment