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
b807f3d5
Commit
b807f3d5
authored
Jan 02, 2013
by
Tom Christie
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Keep API backwards compatible.
parent
eff40391
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
23 additions
and
14 deletions
+23
-14
rest_framework/generics.py
+10
-6
rest_framework/mixins.py
+13
-8
No files found.
rest_framework/generics.py
View file @
b807f3d5
...
...
@@ -47,14 +47,16 @@ class GenericAPIView(views.APIView):
return
serializer_class
def
get_serializer
(
self
,
instance
=
None
,
data
=
None
,
files
=
None
,
partial
=
False
):
def
get_serializer
(
self
,
instance
=
None
,
data
=
None
,
files
=
None
,
partial
=
False
):
"""
Return the serializer instance that should be used for validating and
deserializing input, and for serializing output.
"""
serializer_class
=
self
.
get_serializer_class
()
context
=
self
.
get_serializer_context
()
return
serializer_class
(
instance
,
data
=
data
,
files
=
files
,
partial
=
partial
,
context
=
context
)
return
serializer_class
(
instance
,
data
=
data
,
files
=
files
,
partial
=
partial
,
context
=
context
)
class
MultipleObjectAPIView
(
MultipleObjectMixin
,
GenericAPIView
):
...
...
@@ -169,10 +171,11 @@ class UpdateAPIView(mixins.UpdateModelMixin,
Concrete view for updating a model instance.
"""
def
put
(
self
,
request
,
*
args
,
**
kwargs
):
return
self
.
update
(
request
,
partial
=
False
,
*
args
,
**
kwargs
)
return
self
.
update
(
request
,
*
args
,
**
kwargs
)
def
patch
(
self
,
request
,
*
args
,
**
kwargs
):
return
self
.
update
(
request
,
partial
=
True
,
*
args
,
**
kwargs
)
kwargs
[
'partial'
]
=
True
return
self
.
update
(
request
,
*
args
,
**
kwargs
)
class
ListCreateAPIView
(
mixins
.
ListModelMixin
,
...
...
@@ -212,10 +215,11 @@ class RetrieveUpdateDestroyAPIView(mixins.RetrieveModelMixin,
return
self
.
retrieve
(
request
,
*
args
,
**
kwargs
)
def
put
(
self
,
request
,
*
args
,
**
kwargs
):
return
self
.
update
(
request
,
partial
=
False
,
*
args
,
**
kwargs
)
return
self
.
update
(
request
,
*
args
,
**
kwargs
)
def
delete
(
self
,
request
,
*
args
,
**
kwargs
):
return
self
.
destroy
(
request
,
*
args
,
**
kwargs
)
def
patch
(
self
,
request
,
*
args
,
**
kwargs
):
return
self
.
update
(
request
,
partial
=
True
,
*
args
,
**
kwargs
)
kwargs
[
'partial'
]
=
True
return
self
.
update
(
request
,
*
args
,
**
kwargs
)
rest_framework/mixins.py
View file @
b807f3d5
...
...
@@ -16,11 +16,14 @@ class CreateModelMixin(object):
"""
def
create
(
self
,
request
,
*
args
,
**
kwargs
):
serializer
=
self
.
get_serializer
(
data
=
request
.
DATA
,
files
=
request
.
FILES
)
if
serializer
.
is_valid
():
self
.
pre_save
(
serializer
.
object
)
self
.
object
=
serializer
.
save
()
headers
=
self
.
get_success_headers
(
serializer
.
data
)
return
Response
(
serializer
.
data
,
status
=
status
.
HTTP_201_CREATED
,
headers
=
headers
)
return
Response
(
serializer
.
data
,
status
=
status
.
HTTP_201_CREATED
,
headers
=
headers
)
return
Response
(
serializer
.
errors
,
status
=
status
.
HTTP_400_BAD_REQUEST
)
def
get_success_headers
(
self
,
data
):
...
...
@@ -81,21 +84,22 @@ class UpdateModelMixin(object):
Update a model instance.
Should be mixed in with `SingleObjectBaseView`.
"""
def
update
(
self
,
request
,
partial
=
False
,
*
args
,
**
kwargs
):
def
update
(
self
,
request
,
*
args
,
**
kwargs
):
partial
=
kwargs
.
pop
(
'partial'
,
False
)
try
:
self
.
object
=
self
.
get_object
()
created
=
False
success_status_code
=
status
.
HTTP_200_OK
except
Http404
:
self
.
object
=
None
created
=
True
success_status_code
=
status
.
HTTP_201_CREATED
serializer
=
self
.
get_serializer
(
self
.
object
,
data
=
request
.
DATA
,
files
=
request
.
FILES
,
partial
=
partial
)
serializer
=
self
.
get_serializer
(
self
.
object
,
data
=
request
.
DATA
,
files
=
request
.
FILES
,
partial
=
partial
)
if
serializer
.
is_valid
():
self
.
pre_save
(
serializer
.
object
)
self
.
object
=
serializer
.
save
()
status_code
=
created
and
status
.
HTTP_201_CREATED
or
status
.
HTTP_200_OK
return
Response
(
serializer
.
data
,
status
=
status_code
)
return
Response
(
serializer
.
data
,
status
=
success_status_code
)
return
Response
(
serializer
.
errors
,
status
=
status
.
HTTP_400_BAD_REQUEST
)
...
...
@@ -115,7 +119,8 @@ class UpdateModelMixin(object):
# Ensure we clean the attributes so that we don't eg return integer
# pk using a string representation, as provided by the url conf kwarg.
obj
.
full_clean
()
if
hasattr
(
obj
,
'full_clean'
):
obj
.
full_clean
()
class
DestroyModelMixin
(
object
):
...
...
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