aboutsummaryrefslogtreecommitdiffstats
path: root/djangorestframework/mixins.py
diff options
context:
space:
mode:
authorTom Christie2012-09-04 12:02:05 +0100
committerTom Christie2012-09-04 12:02:05 +0100
commit8457c871963264c9f62552f30307e98221a1c25d (patch)
tree2048cbfc334aa5fca0d5c8d88fd20e50de667e41 /djangorestframework/mixins.py
parent29dfbabaf54d75801b404e253a2d7574fa415564 (diff)
downloaddjango-rest-framework-8457c871963264c9f62552f30307e98221a1c25d.tar.bz2
Bits of cleanup
Diffstat (limited to 'djangorestframework/mixins.py')
-rw-r--r--djangorestframework/mixins.py25
1 files changed, 23 insertions, 2 deletions
diff --git a/djangorestframework/mixins.py b/djangorestframework/mixins.py
index 2721f59e..7269f298 100644
--- a/djangorestframework/mixins.py
+++ b/djangorestframework/mixins.py
@@ -2,10 +2,31 @@ from djangorestframework import status
from djangorestframework.response import Response
+class MetadataMixin(object):
+ """
+ Should be mixed in with any `BaseView`.
+ """
+ def metadata(self, request, *args, **kwargs):
+ content = {
+ 'name': self.get_name(),
+ 'description': self.get_description(),
+ 'renders': self._rendered_media_types,
+ 'parses': self._parsed_media_types,
+ }
+ # TODO: Add 'fields', from serializer info.
+ # form = self.get_bound_form()
+ # if form is not None:
+ # field_name_types = {}
+ # for name, field in form.fields.iteritems():
+ # field_name_types[name] = field.__class__.__name__
+ # content['fields'] = field_name_types
+ raise Response(content, status=status.HTTP_200_OK)
+
+
class CreateModelMixin(object):
"""
Create a model instance.
- Should be mixed in with any `APIView`
+ Should be mixed in with any `BaseView`.
"""
def create(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.DATA)
@@ -47,7 +68,7 @@ class UpdateModelMixin(object):
self.object = self.get_object()
serializer = self.get_serializer(data=request.DATA, instance=self.object)
if serializer.is_valid():
- self.object = serializer.deserialized
+ self.object = serializer.object
self.object.save()
return Response(serializer.data)
return Response(serializer.error_data, status=status.HTTP_400_BAD_REQUEST)