views.py 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. # coding=utf-8
  2. import json
  3. from django.db import transaction
  4. from utils.permission import IsAdministratorUser, IsTenantUser
  5. from apps.tenant.config.serializers import ConfigSerializer
  6. from utils.custom_modelviewset import CustomModelViewSet
  7. from apps.tenant.config.models import Config
  8. from apps.tenant.config.filters import ConfigFilter
  9. from apps.log.models import BizLog
  10. from utils import response_ok, response_error
  11. class ConfigViewSet(CustomModelViewSet):
  12. # TODO
  13. permission_classes = [IsTenantUser, ]
  14. queryset = Config.objects.filter()
  15. serializer_class = ConfigSerializer
  16. # def filter_queryset(self, queryset):
  17. # queryset = queryset.filter()
  18. # f = ConfigFilter(self.request.GET, queryset=queryset)
  19. # return f.qs
  20. # 不分页用list
  21. def list(self, request, *args, **kwargs):
  22. queryset = self.filter_queryset(self.get_queryset())
  23. serializer = self.get_serializer(queryset, many=True)
  24. return response_ok(serializer.data)
  25. def create(self, request, *args, **kwargs):
  26. data = json.loads(request.POST.get('data'))
  27. with transaction.atomic():
  28. for item in data:
  29. config = Config.objects.filter(property=item['key']).first()
  30. if config:
  31. config.value = item['value']
  32. config.save()
  33. else:
  34. Config.objects.create(property=item['key'], value=item['value'])
  35. BizLog.objects.addnew(None, request.user, BizLog.INSERT, u'修改系统设置', data)
  36. return response_ok()