/
DGermanA
/
Chel-DPT
Обзор
Документация
Войти
/
DGermanA
/
Chel-DPT
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
map_app/models.py
71 строка
3 KB
Herman Dmitriev
fix import
11 июн 2026, 16:23
11 июн 2026, 16:23
2f9e946
Код
Авторство
О чём код?
from django.contrib.gis.db import models class Accident(models.Model): external_id = models.BigIntegerField(unique=True, verbose_name="ID из источника") location = models.PointField(srid=4326, verbose_name="Координаты") datetime = models.DateTimeField(verbose_name="Дата и время") address = models.CharField(max_length=255, verbose_name="Адрес", null=True) region = models.CharField(max_length=100, verbose_name="Город/Район", null=True) category = models.CharField(max_length=255, verbose_name="Тип ДТП") severity = models.CharField(max_length=50, verbose_name="Тяжесть") light = models.CharField(max_length=100, verbose_name="Освещение", null=True) weather = models.JSONField(default=list, verbose_name="Погода (протокол)") road_conditions = models.JSONField(default=list, verbose_name="Дорожные условия") nearby = models.JSONField(default=list, verbose_name="Объекты рядом") tags = models.JSONField(default=list, verbose_name="Теги") participants_count = models.IntegerField(default=0) injured_count = models.IntegerField(default=0) dead_count = models.IntegerField(default=0) meteo_temp = models.FloatField(verbose_name="Температура", null=True, blank=True) meteo_pressure = models.FloatField(verbose_name="Давление", null=True, blank=True) meteo_humidity = models.IntegerField( verbose_name="Влажность", null=True, blank=True ) meteo_wind_direction = models.CharField( max_length=100, verbose_name="Направление ветра", null=True, blank=True ) meteo_wind_speed = models.IntegerField( verbose_name="Скорость ветра", null=True, blank=True ) meteo_phenomena = models.CharField( max_length=255, verbose_name="Явления", null=True, blank=True ) meteo_cloudiness = models.CharField( max_length=255, verbose_name="Облачность", null=True, blank=True ) def __str__(self): return f"ДТП {self.external_id} ({self.datetime.date()})" @property def severity_display(self): if self.severity: return self.severity.replace("ё", "е").replace("Ё", "Е") return self.severity class Vehicle(models.Model): accident = models.ForeignKey( Accident, on_delete=models.CASCADE, related_name="vehicles" ) brand = models.CharField(max_length=100, null=True, verbose_name="Марка") model = models.CharField(max_length=100, null=True, verbose_name="Модель") year = models.IntegerField(null=True, verbose_name="Год выпуска") color = models.CharField(max_length=50, null=True, verbose_name="Цвет") category = models.CharField(max_length=1000, null=True, verbose_name="Тип ТС") class Participant(models.Model): vehicle = models.ForeignKey( Vehicle, on_delete=models.CASCADE, related_name="participants" ) role = models.CharField(max_length=50, verbose_name="Роль") gender = models.CharField(max_length=20, null=True, verbose_name="Пол") health_status = models.CharField( max_length=1000, null=True, verbose_name="Состояние здоровья" ) violations = models.JSONField(default=list, verbose_name="Нарушения")