Когда я использую 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!"))
Вернуться на верх