/
creator
/
ecstasy
Обзор
Документация
Войти
/
creator
/
ecstasy
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
gpon/api/serializers/view_tech_data.py
76 строк
3 KB
irudenko
v 17.3.11
15 ноя 2023, 17:17
15 ноя 2023, 17:17
a318a35
Код
Авторство
О чём код?
from rest_framework import serializers from gpon.models import OLTState, HouseOLTState, TechCapability, SubscriberConnection, HouseB from .address import BuildingAddressSerializer from .common import End3Serializer from .create_tech_data import OLTStateSerializer class StructuresHouseOLTStateSerializer(serializers.ModelSerializer): address = BuildingAddressSerializer(source="house") customerLines = End3Serializer(source="end3_set", many=True) class Meta: model = HouseOLTState fields = ["id", "address", "entrances", "description", "customerLines"] class ViewOLTStatesTechDataSerializer(serializers.ModelSerializer): deviceName = serializers.CharField(source="device.name") devicePort = serializers.CharField(source="olt_port") structures = StructuresHouseOLTStateSerializer(source="house_olt_states", many=True) class Meta: model = OLTState fields = ["id", "deviceName", "devicePort", "fiber", "description", "structures"] class HouseOLTStateSerializer(serializers.ModelSerializer): statement = OLTStateSerializer() customerLines = End3Serializer(source="end3_set", many=True) class Meta: model = HouseOLTState fields = ["id", "entrances", "description", "customerLines", "statement"] class ViewHouseBTechDataSerializer(BuildingAddressSerializer): oltStates = HouseOLTStateSerializer(source="house_olt_states", many=True) class Meta: model = HouseB fields = [ "id", "region", "settlement", "planStructure", "street", "house", "block", "building_type", "floors", "total_entrances", "apartment_building", "floors", "total_entrances", "oltStates", ] class SubscriberConnectionSerializer(serializers.ModelSerializer): customerName = serializers.CharField(source="customer.full_name") customerID = serializers.CharField(source="customer.id") connectionID = serializers.CharField(source="id") class Meta: model = SubscriberConnection fields = ["connectionID", "customerName", "transit", "customerID"] class TechCapabilitySerializer(serializers.ModelSerializer): subscribers = SubscriberConnectionSerializer(source="subscriber_connection", many=True, read_only=True) class Meta: model = TechCapability fields = ["id", "status", "number", "subscribers"] read_only_fields = ["id", "number", "subscribers"]