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
68573a3c
Commit
68573a3c
authored
Feb 18, 2014
by
Tom Christie
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #1427 from Ian-Foote/refactor_update
Refactor UpdateModelMixin.update
parents
822eb395
dca8b983
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
11 additions
and
14 deletions
+11
-14
rest_framework/mixins.py
+11
-14
No files found.
rest_framework/mixins.py
View file @
68573a3c
...
...
@@ -116,30 +116,27 @@ class UpdateModelMixin(object):
partial
=
kwargs
.
pop
(
'partial'
,
False
)
self
.
object
=
self
.
get_object_or_none
()
if
self
.
object
is
None
:
created
=
True
save_kwargs
=
{
'force_insert'
:
True
}
success_status_code
=
status
.
HTTP_201_CREATED
else
:
created
=
False
save_kwargs
=
{
'force_update'
:
True
}
success_status_code
=
status
.
HTTP_200_OK
serializer
=
self
.
get_serializer
(
self
.
object
,
data
=
request
.
DATA
,
files
=
request
.
FILES
,
partial
=
partial
)
if
serializer
.
is_valid
():
if
not
serializer
.
is_valid
():
return
Response
(
serializer
.
errors
,
status
=
status
.
HTTP_400_BAD_REQUEST
)
try
:
self
.
pre_save
(
serializer
.
object
)
except
ValidationError
as
err
:
# full_clean on model instance may be called in pre_save, so we
# have to handle eventual errors.
return
Response
(
err
.
message_dict
,
status
=
status
.
HTTP_400_BAD_REQUEST
)
self
.
object
=
serializer
.
save
(
**
save_kwargs
)
self
.
post_save
(
self
.
object
,
created
=
created
)
return
Response
(
serializer
.
data
,
status
=
success_status_code
)
return
Response
(
serializer
.
errors
,
status
=
status
.
HTTP_400_BAD_REQUEST
)
if
self
.
object
is
None
:
self
.
object
=
serializer
.
save
(
force_insert
=
True
)
self
.
post_save
(
self
.
object
,
created
=
True
)
return
Response
(
serializer
.
data
,
status
=
status
.
HTTP_201_CREATED
)
self
.
object
=
serializer
.
save
(
force_update
=
True
)
self
.
post_save
(
self
.
object
,
created
=
False
)
return
Response
(
serializer
.
data
,
status
=
status
.
HTTP_200_OK
)
def
partial_update
(
self
,
request
,
*
args
,
**
kwargs
):
kwargs
[
'partial'
]
=
True
...
...
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