43 lines
1.5 KiB
Python
43 lines
1.5 KiB
Python
|
|
"""
|
||
|
|
Management command to seed weather parameters.
|
||
|
|
Run: python manage.py seed_weather_parameters
|
||
|
|
"""
|
||
|
|
from django.core.management.base import BaseCommand
|
||
|
|
|
||
|
|
from weather.models import WeatherParameter
|
||
|
|
|
||
|
|
|
||
|
|
INITIAL_PARAMETERS = [
|
||
|
|
("temperature_min", "حداقل دمای هوا", "°C"),
|
||
|
|
("temperature_max", "حداکثر دمای هوا", "°C"),
|
||
|
|
("temperature_mean", "میانگین دمای هوا", "°C"),
|
||
|
|
("precipitation", "مجموع بارش", "mm"),
|
||
|
|
("precipitation_probability", "احتمال بارش", "%"),
|
||
|
|
("humidity_mean", "میانگین رطوبت نسبی", "%"),
|
||
|
|
("wind_speed_max", "حداکثر سرعت باد", "km/h"),
|
||
|
|
("et0", "تبخیر-تعرق مرجع (ET₀)", "mm/day"),
|
||
|
|
("weather_code", "کد وضعیت آبوهوا (WMO)", ""),
|
||
|
|
]
|
||
|
|
|
||
|
|
|
||
|
|
class Command(BaseCommand):
|
||
|
|
help = "Seed weather parameters (temperature, precipitation, ET0, etc.)"
|
||
|
|
|
||
|
|
def handle(self, *args, **options):
|
||
|
|
created_count = 0
|
||
|
|
for code, name_fa, unit in INITIAL_PARAMETERS:
|
||
|
|
_, created = WeatherParameter.objects.get_or_create(
|
||
|
|
code=code,
|
||
|
|
defaults={"name_fa": name_fa, "unit": unit},
|
||
|
|
)
|
||
|
|
if created:
|
||
|
|
created_count += 1
|
||
|
|
self.stdout.write(
|
||
|
|
self.style.SUCCESS(f" Created: {code} ({name_fa})")
|
||
|
|
)
|
||
|
|
self.stdout.write(
|
||
|
|
self.style.SUCCESS(
|
||
|
|
f"\nDone. Created {created_count} new weather parameters."
|
||
|
|
)
|
||
|
|
)
|