137 lines
3.8 KiB
Python
137 lines
3.8 KiB
Python
"""
|
||
Справочные модели (справочники).
|
||
"""
|
||
from django.db import models
|
||
|
||
|
||
class ObjectInfo(models.Model):
|
||
name = models.CharField(
|
||
max_length=255,
|
||
unique=True,
|
||
verbose_name="Тип объекта",
|
||
help_text="Информация о типе объекта",
|
||
)
|
||
|
||
def __str__(self):
|
||
return self.name
|
||
|
||
class Meta:
|
||
verbose_name = "Тип объекта"
|
||
verbose_name_plural = "Типы объектов"
|
||
ordering = ["name"]
|
||
|
||
|
||
class ObjectOwnership(models.Model):
|
||
"""
|
||
Модель принадлежности объекта.
|
||
"""
|
||
name = models.CharField(
|
||
max_length=255,
|
||
unique=True,
|
||
verbose_name="Принадлежность",
|
||
help_text="Принадлежность объекта",
|
||
)
|
||
|
||
def __str__(self):
|
||
return self.name
|
||
|
||
class Meta:
|
||
verbose_name = "Принадлежность объекта"
|
||
verbose_name_plural = "Принадлежности объектов"
|
||
ordering = ["name"]
|
||
|
||
|
||
class Polarization(models.Model):
|
||
"""
|
||
Модель поляризации сигнала.
|
||
|
||
Определяет тип поляризации спутникового сигнала (H, V, L, R и т.д.).
|
||
"""
|
||
|
||
name = models.CharField(
|
||
max_length=20,
|
||
unique=True,
|
||
verbose_name="Поляризация",
|
||
db_index=True,
|
||
help_text="Тип поляризации (H - горизонтальная, V - вертикальная, L - левая круговая, R - правая круговая)",
|
||
)
|
||
|
||
def __str__(self):
|
||
return self.name
|
||
|
||
class Meta:
|
||
verbose_name = "Поляризация"
|
||
verbose_name_plural = "Поляризация"
|
||
ordering = ["name"]
|
||
|
||
|
||
class Modulation(models.Model):
|
||
"""
|
||
Модель типа модуляции сигнала.
|
||
|
||
Определяет схему модуляции (QPSK, 8PSK, 16APSK и т.д.).
|
||
"""
|
||
|
||
name = models.CharField(
|
||
max_length=20,
|
||
unique=True,
|
||
verbose_name="Модуляция",
|
||
db_index=True,
|
||
help_text="Тип модуляции сигнала (QPSK, 8PSK, 16APSK и т.д.)",
|
||
)
|
||
|
||
def __str__(self):
|
||
return self.name
|
||
|
||
class Meta:
|
||
verbose_name = "Модуляция"
|
||
verbose_name_plural = "Модуляции"
|
||
ordering = ["name"]
|
||
|
||
|
||
class Standard(models.Model):
|
||
"""
|
||
Модель стандарта передачи данных.
|
||
|
||
Определяет стандарт передачи (DVB-S, DVB-S2, DVB-S2X и т.д.).
|
||
"""
|
||
|
||
name = models.CharField(
|
||
max_length=80,
|
||
unique=True,
|
||
verbose_name="Стандарт",
|
||
db_index=True,
|
||
help_text="Стандарт передачи данных (DVB-S, DVB-S2, DVB-S2X и т.д.)",
|
||
)
|
||
|
||
def __str__(self):
|
||
return self.name
|
||
|
||
class Meta:
|
||
verbose_name = "Стандарт"
|
||
verbose_name_plural = "Стандарты"
|
||
ordering = ["name"]
|
||
|
||
|
||
class Band(models.Model):
|
||
name = models.CharField(
|
||
max_length=50,
|
||
unique=True,
|
||
verbose_name="Название",
|
||
help_text="Название диапазона",
|
||
)
|
||
border_start = models.FloatField(
|
||
blank=True, null=True, verbose_name="Нижняя граница диапазона, МГц"
|
||
)
|
||
border_end = models.FloatField(
|
||
blank=True, null=True, verbose_name="Верхняя граница диапазона, МГц"
|
||
)
|
||
|
||
def __str__(self):
|
||
return f"{self.name}({int(self.border_start)}-{int(self.border_end)})МГц"
|
||
|
||
class Meta:
|
||
verbose_name = "Диапазон"
|
||
verbose_name_plural = "Диапазоны"
|
||
ordering = ["name"]
|