110 lines
4.4 KiB
Python
110 lines
4.4 KiB
Python
"""
|
||
Management command to seed initial plant data.
|
||
Run: python manage.py seed_plants
|
||
"""
|
||
|
||
from django.core.management.base import BaseCommand
|
||
|
||
from plant.models import Plant
|
||
|
||
|
||
INITIAL_PLANTS = [
|
||
{
|
||
"name": "گوجهفرنگی",
|
||
"light": "آفتاب کامل (۶-۸ ساعت)",
|
||
"watering": "منظم، هفتهای ۲-۳ بار",
|
||
"soil": "لومی، غنی از مواد آلی، pH بین ۶-۶.۸",
|
||
"temperature": "۲۰-۳۰ درجه سانتیگراد",
|
||
"planting_season": "بهار",
|
||
"harvest_time": "۷۰-۹۰ روز پس از کاشت",
|
||
"spacing": "۴۵-۶۰ سانتیمتر",
|
||
"fertilizer": "کود NPK متعادل، کمپوست",
|
||
},
|
||
{
|
||
"name": "خیار",
|
||
"light": "آفتاب کامل",
|
||
"watering": "روزانه در فصل گرم",
|
||
"soil": "لومی شنی، غنی از هوموس",
|
||
"temperature": "۱۸-۳۰ درجه سانتیگراد",
|
||
"planting_season": "بهار تا اوایل تابستان",
|
||
"harvest_time": "۵۰-۷۰ روز پس از کاشت",
|
||
"spacing": "۳۰-۴۵ سانتیمتر",
|
||
"fertilizer": "کود ازته، کمپوست",
|
||
},
|
||
{
|
||
"name": "فلفل دلمهای",
|
||
"light": "آفتاب کامل (۶-۸ ساعت)",
|
||
"watering": "منظم، هفتهای ۲-۳ بار",
|
||
"soil": "لومی، زهکشی مناسب",
|
||
"temperature": "۲۰-۳۰ درجه سانتیگراد",
|
||
"planting_season": "بهار",
|
||
"harvest_time": "۶۰-۹۰ روز پس از کاشت",
|
||
"spacing": "۴۰-۵۰ سانتیمتر",
|
||
"fertilizer": "کود فسفره و پتاسه",
|
||
},
|
||
{
|
||
"name": "هویج",
|
||
"light": "آفتاب کامل تا نیمهسایه",
|
||
"watering": "منظم، خاک مرطوب",
|
||
"soil": "شنی لومی، عمیق، بدون سنگ",
|
||
"temperature": "۱۵-۲۵ درجه سانتیگراد",
|
||
"planting_season": "اوایل بهار یا پاییز",
|
||
"harvest_time": "۷۰-۸۰ روز پس از کاشت",
|
||
"spacing": "۵-۸ سانتیمتر",
|
||
"fertilizer": "کود پتاسه، کمپوست پوسیده",
|
||
},
|
||
{
|
||
"name": "کاهو",
|
||
"light": "نیمهسایه تا آفتاب کامل",
|
||
"watering": "منظم، خاک مرطوب",
|
||
"soil": "لومی، غنی از مواد آلی",
|
||
"temperature": "۱۰-۲۰ درجه سانتیگراد",
|
||
"planting_season": "بهار و پاییز",
|
||
"harvest_time": "۴۵-۶۰ روز پس از کاشت",
|
||
"spacing": "۲۰-۳۰ سانتیمتر",
|
||
"fertilizer": "کود ازته، کمپوست",
|
||
},
|
||
{
|
||
"name": "سیبزمینی",
|
||
"light": "آفتاب کامل",
|
||
"watering": "منظم، هفتهای ۲ بار",
|
||
"soil": "لومی شنی، اسیدی ملایم، pH بین ۵-۶",
|
||
"temperature": "۱۵-۲۲ درجه سانتیگراد",
|
||
"planting_season": "اواخر زمستان تا اوایل بهار",
|
||
"harvest_time": "۹۰-۱۲۰ روز پس از کاشت",
|
||
"spacing": "۳۰-۴۰ سانتیمتر",
|
||
"fertilizer": "کود NPK، کمپوست",
|
||
},
|
||
{
|
||
"name": "پیاز",
|
||
"light": "آفتاب کامل",
|
||
"watering": "منظم، خاک مرطوب ولی نه غرقابی",
|
||
"soil": "لومی، زهکشی خوب",
|
||
"temperature": "۱۲-۲۴ درجه سانتیگراد",
|
||
"planting_season": "پاییز یا اوایل بهار",
|
||
"harvest_time": "۹۰-۱۵۰ روز پس از کاشت",
|
||
"spacing": "۱۰-۱۵ سانتیمتر",
|
||
"fertilizer": "کود فسفره، سولفات پتاسیم",
|
||
},
|
||
]
|
||
|
||
|
||
class Command(BaseCommand):
|
||
help = "Seed initial plant data (7 common vegetables)"
|
||
|
||
def handle(self, *args, **options):
|
||
created_count = 0
|
||
for plant_data in INITIAL_PLANTS:
|
||
_, created = Plant.objects.get_or_create(
|
||
name=plant_data["name"],
|
||
defaults=plant_data,
|
||
)
|
||
if created:
|
||
created_count += 1
|
||
self.stdout.write(
|
||
self.style.SUCCESS(f" Created: {plant_data['name']}")
|
||
)
|
||
self.stdout.write(
|
||
self.style.SUCCESS(f"\nDone. Created {created_count} new plants.")
|
||
)
|