Когда я использую django seed, можно ли создать следующее значение словаря, ссылаясь на значение внутри словаря?
Я работаю над созданием виртуальных данных с помощью django_seed. Что если я случайным образом разбросаю дату "check_in" и попытаюсь создать случайную дату "check_out" на основе ранее сгенерированной даты "check_in"? Дата "check_out" должна быть после даты "check_in"
...import random
from datetime import datetime, timedelta
from django.core.management.base import BaseCommand
from django_seed import Seed
from reservations import models as reservation_models
from users import models as user_models
from rooms import models as room_models
SEED_NAME = "reservations"
class Command(BaseCommand):
help = "This command creates {SEED_NAME}"
def add_arguments(self, parser):
parser.add_argument(
"--number", default=2, type=int, help="How many {SEED_NAME}?"
)
def handle(self, *args, **options):
number = options.get("number")
seeder = Seed.seeder()
users = user_models.User.objects.all()
rooms = room_models.Room.objects.all()
seeder.add_entity(
reservation_models.Reservation,
number,
{
"status": lambda x: random.choice(
["pending", "confirmed", "canceled"]
),
"check_in": lambda x: datetime.now(),
"check_out": lambda x: datetime.now()
+ timedelta(days=random.randint(3, 25)),
"guest": lambda x: random.choice(users),
"room": lambda x: random.choice(rooms)
},
)
seeder.execute()
self.stdout.write(self.style.SUCCESS(f"{number} {SEED_NAME} created!"))
def handle(self, *args, **options):
def reservation_date():
in_date = datetime.now() + timedelta(days=random.randint(-10, 5))
global out_date
out_date = in_date + timedelta(days=random.randint(0, 25))
return [in_date, out_date]
number = options.get("number")
seeder = Seed.seeder()
users = user_models.User.objects.all()
rooms = room_models.Room.objects.all()
seeder.add_entity(
reservation_models.Reservation,
number,
{
"status": lambda x: random.choice(
["pending", "confirmed", "canceled"]
),
"check_in": lambda x: reservation_date()[0],
"check_out": lambda x: out_date,
"guest": lambda x: random.choice(users),
"room": lambda x: random.choice(rooms)
},
)
seeder.execute()
self.stdout.write(self.style.SUCCESS(f"{number} {SEED_NAME} created!"))