Python django中的数据库一次性设置

Python django中的数据库一次性设置,python,django,Python,Django,我有一个django应用程序,在启动应用程序或让用户注册之前,数据库中需要几行 其中包括:组、外键字段,甚至还有几个管理用户 目前,我执行了一个脚本start.py,它可以创建组、用户、将管理员用户分配给组等等 似乎有一个更好的更像django的方法来做到这一点。也许将其放入设置.py?完全是另一种方式吗?我认为你应该使用固定装置来实现这一点。 详情请浏览 Django的方法是使用。这绝对是推荐使用的夹具(我认为主要用于测试数据) 基本上,您将进行模式迁移,在模式迁移中定义模型、字段等。在创建保

我有一个django应用程序,在启动应用程序或让用户注册之前,数据库中需要几行

其中包括:组、外键字段,甚至还有几个管理用户

目前,我执行了一个脚本
start.py
,它可以创建组、用户、将管理员用户分配给组等等


似乎有一个更好的更像django的方法来做到这一点。也许将其放入
设置.py
?完全是另一种方式吗?

我认为你应该使用固定装置来实现这一点。 详情请浏览
Django的方法是使用。这绝对是推荐使用的夹具(我认为主要用于测试数据)

基本上,您将进行模式迁移,在模式迁移中定义模型、字段等。在创建保存数据所需的所有模型之后,您将创建一个附加迁移,在该迁移中,您将运行类似于
Model.objects.create(field1='value1')
的代码

我发现这对理解很有帮助。下面是其中包含的示例:

# encoding: utf8
from django.db import models, migrations
from datetime import date

def load_data(apps, schema_editor):
    PriceHistory = apps.get_model("historical_data", "PriceHistory")

    PriceHistory(date=date(2013,11,29),
         price=1234.00,
         volume=354564,
         total_btc=12054375,
         ).save()
    PriceHistory(date=date(2012,11,29),
         price=12.15,
         volume=187947,
         total_btc=10504650,
         ).save()


class Migration(migrations.Migration):

    dependencies = [
        ('historical_data', '0002_auto_20140710_0810'),
    ]

    operations = [
        migrations.RunPython(load_data)
    ]
请注意,与模式迁移的唯一区别在于
migrations.RunPython
调用一个自定义函数,该函数创建您想要的任何数据

这对于South来说曾经有点痛苦,但由于迁移包含在1.7版的vanilla Django中(由与South相同的开发人员完成),因此非常容易,这要感谢在所述迁移中生成的直接代码