views.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. from utils.custom_modelviewset import CustomModelViewSet
  2. from rest_framework.views import APIView
  3. from .models import Option
  4. from .serializers import OptionSerializer
  5. from .filters import OptionFilter
  6. from apps.log.models import BizLog
  7. from utils import response_ok
  8. class DictView(APIView):
  9. def get(self, request):
  10. ret = {
  11. 'types':Option.TYPE_CHOICES,
  12. }
  13. return response_ok(ret)
  14. class OptionViewSet(CustomModelViewSet):
  15. queryset = Option.objects.filter()
  16. serializer_class = OptionSerializer
  17. def filter_queryset(self, queryset):
  18. queryset = queryset.filter()
  19. f = OptionFilter(self.request.GET, queryset=queryset)
  20. return f.qs
  21. def perform_create(self, serializer):
  22. super(OptionViewSet,self).perform_create(serializer)
  23. instance = serializer.instance
  24. validated_data = serializer.validated_data
  25. BizLog.objects.addnew(self.request.user, BizLog.INSERT,
  26. u'添加自定义项[%s],id=%d' % (instance.name, instance.id), validated_data)
  27. def perform_update(self, serializer):
  28. super(OptionViewSet,self).perform_update(serializer)
  29. instance = serializer.instance
  30. validated_data = serializer.validated_data
  31. BizLog.objects.addnew(self.request.user, BizLog.UPDATE,
  32. u'修改自定义项[%s],id=%d' % (instance.name, instance.id), validated_data)