django-admin2/djadmin2/apiviews.py
2013-05-19 14:21:21 +02:00

29 lines
886 B
Python

from rest_framework import fields, generics, serializers
from .views import Admin2Mixin
class Admin2APISerializer(serializers.HyperlinkedModelSerializer):
_default_view_name = 'admin2:api_%(app_label)s_%(model_name)s_detail'
pk = fields.Field(source='pk')
__str__ = fields.Field(source='__unicode__')
class Admin2APIMixin(Admin2Mixin):
def get_serializer_class(self):
if self.serializer_class is None:
model_class = self.get_model()
class ModelAPISerilizer(Admin2APISerializer):
class Meta:
model = model_class
return ModelAPISerilizer
return super(Admin2APIMixin, self).get_serializer_class()
class ListCreateAPIView(Admin2APIMixin, generics.ListCreateAPIView):
pass
class RetrieveUpdateDestroyAPIView(Admin2APIMixin, generics.RetrieveUpdateDestroyAPIView):
pass