mirror of
https://github.com/jazzband/django-admin2.git
synced 2026-03-16 22:20:24 +00:00
Adding a detail based view.
This commit is contained in:
parent
bfc61eadcb
commit
9db48cf0d9
2 changed files with 27 additions and 7 deletions
|
|
@ -1,13 +1,13 @@
|
|||
from rest_framework.fields import Field
|
||||
from rest_framework.generics import ListCreateAPIView
|
||||
from rest_framework.serializers import ModelSerializer
|
||||
from rest_framework import fields, generics, serializers
|
||||
|
||||
|
||||
class Admin2APISerializer(ModelSerializer):
|
||||
unicode = Field(source='__unicode__')
|
||||
class Admin2APISerializer(serializers.ModelSerializer):
|
||||
unicode = fields.Field(source='__unicode__')
|
||||
|
||||
|
||||
class ModelListCreateAPIView(ListCreateAPIView):
|
||||
class Admin2APIMixin(object):
|
||||
modeladmin = None
|
||||
|
||||
def get_serializer_class(self):
|
||||
if self.serializer_class is None:
|
||||
class ModelAPISerilizer(Admin2APISerializer):
|
||||
|
|
@ -16,3 +16,11 @@ class ModelListCreateAPIView(ListCreateAPIView):
|
|||
|
||||
return ModelAPISerilizer
|
||||
return super(ModelListCreateAPIView, self).get_serializer_class()
|
||||
|
||||
|
||||
class ModelListCreateAPIView(Admin2APIMixin, generics.ListCreateAPIView):
|
||||
pass
|
||||
|
||||
|
||||
class ModelRetrieveUpdateDestroyAPIView(Admin2APIMixin, generics.RetrieveUpdateDestroyAPIView):
|
||||
pass
|
||||
|
|
|
|||
|
|
@ -111,6 +111,7 @@ class ModelAdmin2(BaseAdmin2):
|
|||
delete_view = views.ModelDeleteView
|
||||
|
||||
api_index_view = apiviews.ModelListCreateAPIView
|
||||
api_detail_view = apiviews.ModelRetrieveUpdateDestroyAPIView
|
||||
|
||||
def __init__(self, model, **kwargs):
|
||||
self.model = model
|
||||
|
|
@ -156,6 +157,12 @@ class ModelAdmin2(BaseAdmin2):
|
|||
def get_delete_kwargs(self):
|
||||
return self.get_default_view_kwargs()
|
||||
|
||||
def get_api_index_kwargs(self):
|
||||
return self.get_default_view_kwargs()
|
||||
|
||||
def get_api_detail_kwargs(self):
|
||||
return self.get_default_view_kwargs()
|
||||
|
||||
def get_index_url(self):
|
||||
return reverse('admin2:{}'.format(self.get_prefixed_view_name('index')))
|
||||
|
||||
|
|
@ -192,9 +199,14 @@ class ModelAdmin2(BaseAdmin2):
|
|||
return patterns('',
|
||||
url(
|
||||
regex=r'^$',
|
||||
view=self.api_index_view.as_view(model=self.model),
|
||||
view=self.api_index_view.as_view(**self.get_api_index_kwargs()),
|
||||
name='api-index'
|
||||
),
|
||||
url(
|
||||
regex=r'^(?P<pk>[0-9]+)/$',
|
||||
view=self.api_detail_view.as_view(**self.get_api_detail_kwargs()),
|
||||
name='api-detail'
|
||||
),
|
||||
)
|
||||
|
||||
@property
|
||||
|
|
|
|||
Loading…
Reference in a new issue