Мягкое кодирование значений в файл yaml для параметра loaddata - PullRequest
1 голос
/ 03 октября 2019

У меня есть следующая модель:

class Plan(TimeStampedModel):   
    name = models.CharField(_("Plan name"), max_length=50, null=False, blank=False, unique=True)

Даты TimeStampedModel, от которых она наследуется, были созданы и изменены:

class TimeStampedModel(models.Model):
    """Reusable template to add created/last updated timestamps to a model"""

    created_at = models.DateTimeField(_("Created"), auto_now_add=True)
    changed_at = models.DateTimeField(_("Last changed"), auto_now=True)

    class Meta:
        abstract = True

Теперь я запускаю loaddata из файлов yamlвыглядит примерно так:

- model: plans.Plan
  pk: 1
  fields:
    name: Basic plan

Это дает мне ошибку, потому что загрузка жалуется, что я не определил данные метки времени.

То, что я хотел бы сделать вместо того, чтобы просто установить временную метку по умолчанию (что я могу, если это необходимо), это просто передать текущую временную метку для даты / времени, которое я использую loaddata, чтозатем применитесь ко всем файлам yaml.

Выполнение python manage.py testserver demo_data/fixtures/plans.yaml обходит ограничения БД, и параметры auto_now, насколько я вижу, поэтому способ, которым эти поля обычно устанавливаются, не применяется.

Есть лиспособ сделать это? В своих поисках я не могу найти ничего, даже похожего вопроса.

...