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
1addd09e
Commit
1addd09e
authored
Feb 27, 2014
by
Anton Shutik
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
RelatedField default value handling fixed
parent
6e92e415
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
14 additions
and
5 deletions
+14
-5
rest_framework/fields.py
+6
-4
rest_framework/relations.py
+8
-1
No files found.
rest_framework/fields.py
View file @
1addd09e
...
@@ -301,6 +301,11 @@ class WritableField(Field):
...
@@ -301,6 +301,11 @@ class WritableField(Field):
result
.
validators
=
self
.
validators
[:]
result
.
validators
=
self
.
validators
[:]
return
result
return
result
def
get_default_value
(
self
):
if
is_simple_callable
(
self
.
default
):
return
self
.
default
()
return
self
.
default
def
validate
(
self
,
value
):
def
validate
(
self
,
value
):
if
value
in
validators
.
EMPTY_VALUES
and
self
.
required
:
if
value
in
validators
.
EMPTY_VALUES
and
self
.
required
:
raise
ValidationError
(
self
.
error_messages
[
'required'
])
raise
ValidationError
(
self
.
error_messages
[
'required'
])
...
@@ -349,10 +354,7 @@ class WritableField(Field):
...
@@ -349,10 +354,7 @@ class WritableField(Field):
except
KeyError
:
except
KeyError
:
if
self
.
default
is
not
None
and
not
self
.
partial
:
if
self
.
default
is
not
None
and
not
self
.
partial
:
# Note: partial updates shouldn't set defaults
# Note: partial updates shouldn't set defaults
if
is_simple_callable
(
self
.
default
):
native
=
self
.
get_default_value
()
native
=
self
.
default
()
else
:
native
=
self
.
default
else
:
else
:
if
self
.
required
:
if
self
.
required
:
raise
ValidationError
(
self
.
error_messages
[
'required'
])
raise
ValidationError
(
self
.
error_messages
[
'required'
])
...
...
rest_framework/relations.py
View file @
1addd09e
...
@@ -118,6 +118,13 @@ class RelatedField(WritableField):
...
@@ -118,6 +118,13 @@ class RelatedField(WritableField):
choices
=
property
(
_get_choices
,
_set_choices
)
choices
=
property
(
_get_choices
,
_set_choices
)
### Default value handling
def
get_default_value
(
self
):
default
=
super
(
RelatedField
,
self
)
.
get_default_value
()
return
default
or
\
[]
if
self
.
many
else
None
### Regular serializer stuff...
### Regular serializer stuff...
def
field_to_native
(
self
,
obj
,
field_name
):
def
field_to_native
(
self
,
obj
,
field_name
):
...
@@ -166,7 +173,7 @@ class RelatedField(WritableField):
...
@@ -166,7 +173,7 @@ class RelatedField(WritableField):
except
KeyError
:
except
KeyError
:
if
self
.
partial
:
if
self
.
partial
:
return
return
value
=
[]
if
self
.
many
else
None
value
=
self
.
get_default_value
()
if
value
in
(
None
,
''
)
and
self
.
required
:
if
value
in
(
None
,
''
)
and
self
.
required
:
raise
ValidationError
(
self
.
error_messages
[
'required'
])
raise
ValidationError
(
self
.
error_messages
[
'required'
])
...
...
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