Эх сурвалжийг харах

后台APP设备 添加APP设备类型

linhaohong 1 жил өмнө
parent
commit
00ddf815c9

+ 21 - 14
AdminController/DeviceManagementController.py

@@ -874,19 +874,25 @@ class DeviceManagement(View):
             # 如果需要上传文件
             if need_upload:
                 with transaction.atomic():
-                    fileName = file.name
-                    fileV2Name = file_v2.name
-                    now_time = int(time.time())
-                    icon = f'https://ansjerfilemanager.s3.amazonaws.com/app/device_type_images/{now_time}_{fileName}'
-                    iconV2 = f'https://ansjerfilemanager.s3.amazonaws.com/app/device_type_images/{now_time}_v2_{fileV2Name}'
-                    bucket_name = 'ansjerfilemanager'
-                    file_key = f'app/device_type_images/{now_time}_{fileName}'
-                    file_v2_key = f'app/device_type_images/{now_time}_v2_{fileV2Name}'
-                    s3 = AmazonS3Util(AWS_ACCESS_KEY_ID[1], AWS_SECRET_ACCESS_KEY[1], AWS_SES_ACCESS_REGION)
-                    s3.upload_file_obj(bucket_name, file_key, file,
-                                       {'ContentType': file.content_type, 'ACL': 'public-read'})
-                    s3.upload_file_obj(bucket_name, file_v2_key, file_v2,
-                                       {'ContentType': file_v2.content_type, 'ACL': 'public-read'})
+                    if file:
+                        fileName = file.name
+                        now_time = int(time.time())
+                        icon = f'https://ansjerfilemanager.s3.amazonaws.com/app/device_type_images/{now_time}_{fileName}'
+                        bucket_name = 'ansjerfilemanager'
+                        file_key = f'app/device_type_images/{now_time}_{fileName}'
+                        s3 = AmazonS3Util(AWS_ACCESS_KEY_ID[1], AWS_SECRET_ACCESS_KEY[1], AWS_SES_ACCESS_REGION)
+                        s3.upload_file_obj(bucket_name, file_key, file,
+                                           {'ContentType': file.content_type, 'ACL': 'public-read'})
+                    if file_v2:
+                        fileV2Name = file_v2.name
+                        now_time = int(time.time())
+                        iconV2 = f'https://ansjerfilemanager.s3.amazonaws.com/app/device_type_images/{now_time}_v2_{fileV2Name}'
+                        bucket_name = 'ansjerfilemanager'
+                        file_v2_key = f'app/device_type_images/{now_time}_v2_{fileV2Name}'
+                        s3 = AmazonS3Util(AWS_ACCESS_KEY_ID[1], AWS_SECRET_ACCESS_KEY[1], AWS_SES_ACCESS_REGION)
+                        s3.upload_file_obj(bucket_name, file_v2_key, file_v2,
+                                           {'ContentType': file_v2.content_type, 'ACL': 'public-read'})
+
                     for app_id in app_bundle_id:
                         for k, v in data_name.items():
                             record_key = {"app_bundle_id": app_id, "type": type, "version_number": version_number,
@@ -895,7 +901,8 @@ class DeviceManagement(View):
                             if not any(rec == record_key for rec in existing_records):
                                 app_bundle = AppBundle.objects.filter(id=app_id).values('id', 'app_bundle_id').first()
                                 app_device_type_qs = AppDeviceType.objects.create(model=model, type=type,
-                                                                                  icon=icon, iconV2=iconV2,
+                                                                                  icon=icon if file else "",
+                                                                                  iconV2=iconV2 if file_v2 else "",
                                                                                   app_version_number_id=version_number,
                                                                                   config=config)
                                 DeviceNameLanguage.objects.create(lang=k, name=v, sort=sort,