views.py 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. # coding=utf-8
  2. import json
  3. from django.db import transaction
  4. from utils.permission import IsAdministratorUser
  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. permission_classes = [IsAdministratorUser, ]
  13. queryset = Config.objects.filter()
  14. serializer_class = ConfigSerializer
  15. # def filter_queryset(self, queryset):
  16. # queryset = queryset.filter()
  17. # f = ConfigFilter(self.request.GET, queryset=queryset)
  18. # return f.qs
  19. # 不分页用list
  20. def list(self, request, *args, **kwargs):
  21. queryset = self.filter_queryset(self.get_queryset())
  22. serializer = self.get_serializer(queryset, many=True)
  23. return response_ok(serializer.data)
  24. def create(self, request, *args, **kwargs):
  25. data = json.loads(request.POST.get('data'))
  26. with transaction.atomic():
  27. for item in data:
  28. config = Config.objects.filter(property=item['key']).first()
  29. if config:
  30. config.value = item['value']
  31. config.save()
  32. else:
  33. Config.objects.create(property=item['key'], value=item['value'])
  34. BizLog.objects.addnew(None, request.user, BizLog.INSERT, u'修改系统设置', data)
  35. return response_ok()