first
This commit is contained in:
@@ -36,7 +36,9 @@ class DetectorSerializer(serializers.ModelSerializer):
|
||||
fields = ('detector_id', 'type', 'detector_type', 'serial_number', 'name', 'object', 'status', 'zone', 'floor', 'notifications')
|
||||
|
||||
def get_detector_id(self, obj):
|
||||
return obj.name or f"{obj.sensor_type.code}-{obj.id}"
|
||||
# Используем serial_number для совместимости с 3D моделью
|
||||
# Если serial_number нет, используем ID с префиксом
|
||||
return obj.serial_number or f"sensor_{obj.id}"
|
||||
|
||||
def get_type(self, obj):
|
||||
sensor_type_mapping = {
|
||||
|
||||
@@ -13,6 +13,7 @@ from api.utils.decorators import handle_exceptions
|
||||
class SensorView(APIView):
|
||||
permission_classes = [IsAuthenticated]
|
||||
serializer_class = DetectorsResponseSerializer
|
||||
pagination_class = None # Отключаем пагинацию для получения всех датчиков
|
||||
|
||||
@extend_schema(
|
||||
summary="Получение всех датчиков",
|
||||
@@ -54,7 +55,25 @@ class SensorView(APIView):
|
||||
'alerts'
|
||||
).all()
|
||||
|
||||
total_count = sensors.count()
|
||||
print(f"[SensorView] Total sensors in DB: {total_count}")
|
||||
|
||||
# Проверяем уникальность serial_number
|
||||
serial_numbers = [s.serial_number for s in sensors if s.serial_number]
|
||||
unique_serials = set(serial_numbers)
|
||||
print(f"[SensorView] Unique serial_numbers: {len(unique_serials)} out of {len(serial_numbers)}")
|
||||
|
||||
if len(serial_numbers) != len(unique_serials):
|
||||
from collections import Counter
|
||||
duplicates = {k: v for k, v in Counter(serial_numbers).items() if v > 1}
|
||||
print(f"[SensorView] WARNING: Found duplicate serial_numbers: {duplicates}")
|
||||
|
||||
serializer = DetectorsResponseSerializer(sensors)
|
||||
detectors_dict = serializer.data.get('detectors', {})
|
||||
|
||||
print(f"[SensorView] Serialized detectors count: {len(detectors_dict)}")
|
||||
print(f"[SensorView] Sample detector_ids: {list(detectors_dict.keys())[:5]}")
|
||||
|
||||
return Response(serializer.data, status=status.HTTP_200_OK)
|
||||
except Sensor.DoesNotExist:
|
||||
return Response(
|
||||
|
||||
Reference in New Issue
Block a user