feat / AEB-60 create get route for sensors list
This commit is contained in:
@@ -174,6 +174,7 @@ class Zone(models.Model):
|
||||
"""Зона"""
|
||||
object = models.ForeignKey(Object, on_delete=models.CASCADE, related_name="zones", verbose_name="Объект")
|
||||
name = models.CharField(max_length=255, verbose_name="Название")
|
||||
floor = models.PositiveSmallIntegerField(verbose_name="Этаж")
|
||||
sensors = models.ManyToManyField(Sensor, related_name="zones", verbose_name="Датчики")
|
||||
created_at = models.DateTimeField(auto_now_add=True)
|
||||
updated_at = models.DateTimeField(auto_now=True)
|
||||
@@ -181,8 +182,16 @@ class Zone(models.Model):
|
||||
class Meta:
|
||||
verbose_name = "Зона"
|
||||
verbose_name_plural = "Зоны"
|
||||
ordering = ["object", "name"]
|
||||
ordering = ["object", "floor", "name"] # сортировка сначала по объекту, потом по этажу
|
||||
|
||||
def clean(self):
|
||||
from django.core.exceptions import ValidationError
|
||||
# проверяем что номер этажа не превышает количество этажей в здании
|
||||
if self.floor > self.object.floors:
|
||||
raise ValidationError({
|
||||
'floor': f'Номер этажа не может быть больше количества этажей в здании ({self.object.floors})'
|
||||
})
|
||||
|
||||
def __str__(self):
|
||||
return f"{self.object.title} - {self.name}"
|
||||
return f"{self.object.title} - Этаж {self.floor} - {self.name}"
|
||||
|
||||
Reference in New Issue
Block a user