views.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. # coding=utf-8
  2. from django.db import transaction
  3. from utils.permission import IsAdministratorUser
  4. from utils.exceptions import CustomError
  5. from utils import response_ok, response_error
  6. from rest_framework import generics
  7. from apps.log.models import BizLog
  8. from apps.wechat.models import Wechat
  9. from apps.wechat.serializers import WechatSerializer
  10. class WechatViewSet(generics.RetrieveUpdateAPIView):
  11. '''查看修改小程序信息'''
  12. permission_classes = [IsAdministratorUser, ]
  13. serializer_class = WechatSerializer
  14. def get_object(self):
  15. instance = Wechat.objects.filter().first()
  16. if not instance:
  17. raise CustomError(u'未添加小程序!')
  18. return instance
  19. def retrieve(self, request, *args, **kwargs):
  20. instance = self.get_object()
  21. serializer = self.get_serializer(instance)
  22. return response_ok(serializer.data)
  23. def update(self, request, *args, **kwargs):
  24. with transaction.atomic():
  25. super(WechatViewSet, self).update(request, *args, **kwargs)
  26. return response_ok()
  27. def perform_update(self, serializer):
  28. super(WechatViewSet, self).perform_update(serializer)
  29. validated_data = serializer.validated_data
  30. BizLog.objects.addnew(self.request.user, BizLog.UPDATE, u'修改小程序信息', validated_data)