From baf58228028d684eed98ff6dac3a8445ed160675 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=BC=BA?= <1206709430@qq.com> Date: Mon, 13 Nov 2023 07:58:09 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=9F=E8=83=BD=E5=8F=98=E5=8C=96:=20?= =?UTF-8?q?=E5=AF=BC=E5=85=A5=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/dvadmin/utils/import_export_mixin.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/backend/dvadmin/utils/import_export_mixin.py b/backend/dvadmin/utils/import_export_mixin.py index 808db90..3302f80 100644 --- a/backend/dvadmin/utils/import_export_mixin.py +++ b/backend/dvadmin/utils/import_export_mixin.py @@ -11,6 +11,7 @@ from openpyxl.worksheet.table import Table, TableStyleInfo from rest_framework.decorators import action from rest_framework.request import Request +from application import dispatch from dvadmin.utils.import_export import import_to_data from dvadmin.utils.json_response import DetailResponse from dvadmin.utils.request_util import get_verbose_name @@ -148,7 +149,15 @@ class ImportSerializerMixin: if hasattr(ele, "many_to_many") and ele.many_to_many == True ] import_field_dict = {'id': '更新主键(勿改)', **self.import_field_dict} - data = import_to_data(request.data.get("url"), import_field_dict, m2m_fields) + url = request.data.get("url") + aliyun_cdn_url = dispatch.get_system_config_values("file_storage.aliyun_cdn_url") + file_engine = dispatch.get_system_config_values("file_storage.file_engine") or 'local' + if file_engine == 'oss': + if aliyun_cdn_url and url.startswith(aliyun_cdn_url): + if aliyun_cdn_url[-1] != '/': + aliyun_cdn_url = f"{aliyun_cdn_url}/" + url = url.replace(aliyun_cdn_url, '') + data = import_to_data(url, import_field_dict, m2m_fields) for ele in data: filter_dic = {'id': ele.get('id')} instance = filter_dic and queryset.filter(**filter_dic).first()