Django записей по умолчанию при создании модели - PullRequest
1 голос
/ 08 мая 2020

Я уверен, что об этом уже спрашивали, но я не могу найти ответа. В django, если у меня есть эта модель

from django.db import models

class Person(models.Model):
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=30)

Как можно заполнить эту модель записью Person по умолчанию при первом переносе поля?

Я не говорю о значениях по умолчанию для полей, но для записей по умолчанию в базе данных.

спасибо

1 Ответ

1 голос
/ 08 мая 2020

Вы можете сделать миграцию данных , которая следует за миграцией, когда вы создаете объект Person. Сначала вы можете позволить Django записать «скелет» миграции, это можно сделать с помощью:

python manage.py <b>makemigrations --empty</b> <i>appname</i>

Далее Django создаст файл. В этом файле вы можете добавить элемент RunPython в список operations. Затем получается модель историческая (модель на тот момент миграции), где вы затем создаете объект Person в базе данных. Например:

from django.db import migrations

class Migration(migrations.Migration):

    def <b>create_person</b>(apps, schema_editor):
        Person = apps.get_model(<i>'appname'</i>, 'Person')
        Person.objects<b>.create(first_name='will', last_name='mendil')</b>

    dependencies = [
        (<i>'appname'</i>, <i>'migrationname'</i>),
    ]

    operations = [
        migrations.<b>RunPython(create_person)</b>
    ]
...