|
@@ -272,11 +272,18 @@ class AgentDeviceView(View):
|
|
|
with open(file_path, 'r') as file:
|
|
|
reader = csv.DictReader(file)
|
|
|
devices_to_create = []
|
|
|
- existing_serial_numbers = set(AgentDevice.objects.values_list('serial_number', flat=True))
|
|
|
+ # 先收集所有CSV中的序列号
|
|
|
+ csv_serial_numbers = [row.get('serial_number') for row in reader]
|
|
|
+ # 去重
|
|
|
+ unique_serial_numbers = set(csv_serial_numbers)
|
|
|
|
|
|
- for row in reader:
|
|
|
+ existing = set(AgentDevice.objects.filter(
|
|
|
+ serial_number__in=unique_serial_numbers
|
|
|
+ ).values_list('serial_number', flat=True))
|
|
|
+
|
|
|
+ for row in unique_serial_numbers:
|
|
|
serial_number = row.get('serial_number')
|
|
|
- if serial_number not in existing_serial_numbers:
|
|
|
+ if serial_number not in existing:
|
|
|
device = AgentDevice(
|
|
|
ac_id=ac_id,
|
|
|
serial_number=serial_number,
|