mirror of https://github.com/jumpserver/jumpserver
[Update] 修改导出的csv名称
parent
b237cbb20f
commit
0847539e02
|
@ -2,6 +2,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
import unicodecsv
|
import unicodecsv
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
from six import BytesIO
|
from six import BytesIO
|
||||||
from rest_framework.renderers import BaseRenderer
|
from rest_framework.renderers import BaseRenderer
|
||||||
|
@ -40,6 +41,16 @@ class JMSCSVRender(BaseRenderer):
|
||||||
row = [item.get(key) for key in header]
|
row = [item.get(key) for key in header]
|
||||||
yield row
|
yield row
|
||||||
|
|
||||||
|
def set_response_disposition(self, serializer, context):
|
||||||
|
response = context.get('response')
|
||||||
|
if response and hasattr(serializer, 'Meta') and \
|
||||||
|
hasattr(serializer.Meta, "model"):
|
||||||
|
model_name = serializer.Meta.model.__name__.lower()
|
||||||
|
now = datetime.now().strftime("%Y-%m-%d_%H-%M-%S")
|
||||||
|
filename = "{}_{}.csv".format(model_name, now)
|
||||||
|
disposition = 'attachment; filename="{}"'.format(filename)
|
||||||
|
response['Content-Disposition'] = disposition
|
||||||
|
|
||||||
def render(self, data, media_type=None, renderer_context=None):
|
def render(self, data, media_type=None, renderer_context=None):
|
||||||
renderer_context = renderer_context or {}
|
renderer_context = renderer_context or {}
|
||||||
encoding = renderer_context.get('encoding', 'utf-8')
|
encoding = renderer_context.get('encoding', 'utf-8')
|
||||||
|
@ -52,6 +63,7 @@ class JMSCSVRender(BaseRenderer):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
serializer = view.get_serializer()
|
serializer = view.get_serializer()
|
||||||
|
self.set_response_disposition(serializer, renderer_context)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.debug(e, exc_info=True)
|
logger.debug(e, exc_info=True)
|
||||||
value = 'The resource not support export!'.encode('utf-8')
|
value = 'The resource not support export!'.encode('utf-8')
|
||||||
|
|
Loading…
Reference in New Issue