Django 模型创建时的默认条目

wil*_*dil 2 django django-models

我确信以前有人问过这个问题,但我找不到答案。在 django 中,如果我有这个模型

from django.db import models

class Person(models.Model):
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=30)
Run Code Online (Sandbox Code Playgroud)

Person第一次迁移字段时,如何使用默认条目填充此模型?

我不是在谈论字段的默认值,而是在谈论数据库中的默认条目。

谢谢

Wil*_*sem 6

您可以在创建对象的迁移之后进行数据迁移Person。您可以首先让 Django 编写迁移的“骨架”,这可以通过以下方式完成:

python manage.py makemigrations --empty appname
Run Code Online (Sandbox Code Playgroud)

接下来 Django 将创建一个文件。在该文件中,您可以将RunPython项目添加到operations列表中。然后获取历史模型(迁移时的模型),然后您可以Person在数据库中创建一个对象。例如:

from django.db import migrations

class Migration(migrations.Migration):

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

    dependencies = [
        ('appname', 'migrationname'),
    ]

    operations = [
        migrations.RunPython(create_person)
    ]
Run Code Online (Sandbox Code Playgroud)