views.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. # coding=utf-8
  2. import traceback
  3. import json
  4. from django.views.decorators.csrf import csrf_exempt
  5. from django.db import transaction
  6. from apps.exceptions import CustomError
  7. from apps.foundation.models import BizLog
  8. from libs.http import JSONResponse, JSONError, DataGridJSONResponse
  9. from apps.account.decorators import permission_required, token_required
  10. from models import Config
  11. from serializers import ConfigSerializer
  12. @csrf_exempt
  13. @permission_required('config.edit_config')
  14. def config_save(request):
  15. data = json.loads(request.POST.get('data'))
  16. try:
  17. with transaction.atomic():
  18. for item in data:
  19. if not item['value']:
  20. continue
  21. config = Config.objects.filter(property=item['key']).first()
  22. if config:
  23. config.value = item['value']
  24. config.save()
  25. else:
  26. Config.objects.create(property=item['key'], value=item['value'])
  27. BizLog.objects.addnew(request.user, BizLog.UPDATE, u"修改系统配置", data)
  28. except CustomError, e:
  29. return JSONError(e.get_error_msg())
  30. except Exception, e:
  31. return JSONError(u'保存失败!')
  32. return JSONResponse()
  33. @csrf_exempt
  34. @token_required
  35. def config_list(request):
  36. rows = Config.objects.filter()
  37. serializer = ConfigSerializer(rows, many=True)
  38. return JSONResponse(serializer.data)