[future] 使用mixin去掉重复多余代码

pull/530/head
Administrator 2016-11-20 18:12:18 +08:00
parent 1e835d2fa9
commit 79971d677d
1 changed files with 43 additions and 206 deletions

View File

@ -1,249 +1,86 @@
# ~*~ coding: utf-8 ~*~
from __future__ import unicode_literals
from rest_framework import viewsets
from rest_framework import status
from rest_framework.response import Response
from rest_framework import viewsets, mixins
from serializers import *
from permissions import *
import exc
class HostAliaViewSet(viewsets.GenericViewSet):
class HostAliaViewSet(mixins.CreateModelMixin,
mixins.ListModelMixin,
mixins.RetrieveModelMixin,
mixins.UpdateModelMixin,
mixins.DestroyModelMixin,
viewsets.GenericViewSet):
queryset = HostAlia.objects.all()
serializer_class = HostAliaSerializer
permission_classes = (AdminUserRequired,)
def list(self, *args, **kwargs):
h_alias = self.get_queryset()
h_serializer = self.get_serializer(h_alias, many=True)
return Response(h_serializer.data)
def create(self, *args, **kwargs):
serializer = self.get_serializer(data=self.request.data)
serializer.is_valid(raise_exception=True)
self.perform_create()
return Response(serializer.data, status=status.HTTP_201_CREATED)
def retrieve(self, *args, **kwargs):
h_alias = self.get_object()
serializer = self.get_serializer(h_alias)
return Response(serializer.data)
def update(self, *args, **kwargs):
h_alias = self.get_object()
serializer = self.get_serializer(h_alias, data=self.request.data)
serializer.is_valid(raise_exception=False)
self.perform_create()
return Response(serializer.data)
def destroy(self, *args, **kwargs):
h_alias = self.get_object()
h_alias.delete()
return Response(status=status.HTTP_204_NO_CONTENT)
def perform_create(self):
pass
class CmdAliaViewSet(viewsets.GenericViewSet):
class CmdAliaViewSet(mixins.CreateModelMixin,
mixins.ListModelMixin,
mixins.RetrieveModelMixin,
mixins.UpdateModelMixin,
mixins.DestroyModelMixin,
viewsets.GenericViewSet):
queryset = CmdAlia.objects.all()
serializer_class = CmdAliaSerializer
permission_classes = (AdminUserRequired,)
def list(self, *args, **kwargs):
c_alias = self.get_queryset()
c_serializer = self.get_serializer(c_alias, many=True)
return Response(c_serializer.data)
def create(self, *args, **kwargs):
serializer = self.get_serializer(data=self.request.data)
serializer.is_valid(raise_exception=True)
self.perform_create()
return Response(serializer.data, status=status.HTTP_201_CREATED)
def retrieve(self, *args, **kwargs):
c_alias = self.get_object()
serializer = self.get_serializer(c_alias)
return Response(serializer.data)
def update(self, *args, **kwargs):
c_alias = self.get_object()
serializer = self.get_serializer(c_alias, data=self.request.data)
serializer.is_valid(raise_exception=False)
self.perform_create()
return Response(serializer.data)
def destroy(self, *args, **kwargs):
c_alias = self.get_object()
c_alias.delete()
return Response(status=status.HTTP_204_NO_CONTENT)
def perform_create(self):
pass
class UserAliaViewSet(viewsets.GenericViewSet):
class UserAliaViewSet(mixins.CreateModelMixin,
mixins.ListModelMixin,
mixins.RetrieveModelMixin,
mixins.UpdateModelMixin,
mixins.DestroyModelMixin,
viewsets.GenericViewSet):
queryset = UserAlia.objects.all()
serializer_class = UserAliaSerializer
permission_classes = (AdminUserRequired,)
def list(self, *args, **kwargs):
u_alias = self.get_queryset()
u_serializer = self.get_serializer(u_alias, many=True)
return Response(u_serializer.data)
def create(self, *args, **kwargs):
serializer = self.get_serializer(data=self.request.data)
serializer.is_valid(raise_exception=True)
self.perform_create()
return Response(serializer.data, status=status.HTTP_201_CREATED)
def retrieve(self, *args, **kwargs):
u_alias = self.get_object()
serializer = self.get_serializer(u_alias)
return Response(serializer.data)
def update(self, *args, **kwargs):
u_alias = self.get_object()
serializer = self.get_serializer(u_alias, data=self.request.data)
serializer.is_valid(raise_exception=False)
self.perform_create()
return Response(serializer.data)
def destroy(self, *args, **kwargs):
u_alias = self.get_object()
u_alias.delete()
return Response(status=status.HTTP_204_NO_CONTENT)
def perform_create(self):
pass
class RunasAliaViewSet(viewsets.GenericViewSet):
class RunasAliaViewSet(mixins.CreateModelMixin,
mixins.ListModelMixin,
mixins.RetrieveModelMixin,
mixins.UpdateModelMixin,
mixins.DestroyModelMixin,
viewsets.GenericViewSet):
queryset = RunasAlia.objects.all()
serializer_class = RunasAliaSerializer
permission_classes = (AdminUserRequired,)
def list(self, *args, **kwargs):
r_alias = self.get_queryset()
r_serializer = self.get_serializer(r_alias, many=True)
return Response(r_serializer.data)
def create(self, *args, **kwargs):
serializer = self.get_serializer(data=self.request.data)
serializer.is_valid(raise_exception=True)
self.perform_create()
return Response(serializer.data, status=status.HTTP_201_CREATED)
def retrieve(self, *args, **kwargs):
r_alias = self.get_object()
serializer = self.get_serializer(r_alias)
return Response(serializer.data)
def update(self, *args, **kwargs):
r_alias = self.get_object()
serializer = self.get_serializer(r_alias, data=self.request.data)
serializer.is_valid(raise_exception=False)
self.perform_create()
return Response(serializer.data)
def destroy(self, *args, **kwargs):
r_alias = self.get_object()
r_alias.delete()
return Response(status=status.HTTP_204_NO_CONTENT)
def perform_create(self):
pass
class ExtraconfViewSet(viewsets.GenericViewSet):
class ExtraconfViewSet(mixins.CreateModelMixin,
mixins.ListModelMixin,
mixins.RetrieveModelMixin,
mixins.UpdateModelMixin,
mixins.DestroyModelMixin,
viewsets.GenericViewSet):
queryset = Extra_conf.objects.all()
serializer_class = ExtraconfSerializer
permission_classes = (AdminUserRequired,)
def list(self, *args, **kwargs):
e_alias = self.get_queryset()
e_serializer = self.get_serializer(e_alias, many=True)
return Response(e_serializer.data)
def create(self, *args, **kwargs):
serializer = self.get_serializer(data=self.request.data)
serializer.is_valid(raise_exception=True)
self.perform_create()
return Response(serializer.data, status=status.HTTP_201_CREATED)
def retrieve(self, *args, **kwargs):
e_alias = self.get_object()
serializer = self.get_serializer(e_alias)
return Response(serializer.data)
def update(self, *args, **kwargs):
e_alias = self.get_object()
serializer = self.get_serializer(e_alias, data=self.request.data)
serializer.is_valid(raise_exception=False)
self.perform_create()
return Response(serializer.data)
def destroy(self, *args, **kwargs):
e_alias = self.get_object()
e_alias.delete()
return Response(status=status.HTTP_204_NO_CONTENT)
def perform_create(self):
pass
class PrivilegeViewSet(viewsets.GenericViewSet):
class PrivilegeViewSet(mixins.CreateModelMixin,
mixins.ListModelMixin,
mixins.RetrieveModelMixin,
mixins.UpdateModelMixin,
mixins.DestroyModelMixin,
viewsets.GenericViewSet):
queryset = Privilege.objects.all()
serializer_class = PrivilegeSerializer
permission_classes = (AdminUserRequired,)
def list(self, *args, **kwargs):
raise exc.ServiceNotImplemented
def create(self, *args, **kwargs):
raise exc.ServiceNotImplemented
def retrieve(self, *args, **kwargs):
raise exc.ServiceNotImplemented
def update(self, *args, **kwargs):
raise exc.ServiceNotImplemented
def destroy(self, *args, **kwargs):
privilege = self.get_object()
privilege.delete()
return Response(status=status.HTTP_204_NO_CONTENT)
def perform_create(self):
pass
class SudoViewSet(viewsets.GenericViewSet):
class SudoViewSet(mixins.CreateModelMixin,
mixins.ListModelMixin,
mixins.RetrieveModelMixin,
mixins.UpdateModelMixin,
mixins.DestroyModelMixin,
viewsets.GenericViewSet):
queryset = Sudo.objects.all()
serializer_class = SudoSerializer
permission_classes = (AdminUserRequired,)
def list(self, *args, **kwargs):
raise exc.ServiceNotImplemented
def create(self, *args, **kwargs):
raise exc.ServiceNotImplemented
def retrieve(self, *args, **kwargs):
raise exc.ServiceNotImplemented
def update(self, *args, **kwargs):
raise exc.ServiceNotImplemented
def destroy(self, *args, **kwargs):
sudo = self.get_object()
sudo.delete()
return Response(status=status.HTTP_204_NO_CONTENT)
def perform_create(self):
pass