2024-03-28 11:45:42 发布
网友
我有一个django应用程序,需要在数据库中的几行,甚至在启动应用程序或让用户注册,等等
其中包括:组、外键字段,甚至几个管理用户。你知道吗
目前,我有一个脚本start.py,可以执行创建组、用户、将管理员用户分配给组等操作。你知道吗
start.py
似乎有一个更好的更django-ish的方法来做这件事。也许把这个放在settings.py里?完全是另一种方式?你知道吗
settings.py
Django的方法是使用Data Migrations。这是绝对建议超过夹具(我认为主要用于测试数据)
基本上,您将进行模式迁移,您将在其中定义模型、字段等。在创建所有必要的模型以保存数据之后,您将创建一个额外的迁移,您将在其中运行类似于Model.objects.create(field1='value1')的代码。你知道吗
Model.objects.create(field1='value1')
我发现this guide对理解有很大帮助。下面是其中的示例:
# 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调用一个自定义函数,该函数创建您想要的任何数据。你知道吗
migrations.RunPython
对于South来说,这曾经是一个难题,但是由于迁移包含在vanilla Django的1.7版本中(与South是同一个开发人员),这非常容易,这要感谢在上述迁移中生成的直接代码。你知道吗
我觉得你应该用固定装置。 详情请访问 https://docs.djangoproject.com/en/dev/howto/initial-data/
Django的方法是使用Data Migrations。这是绝对建议超过夹具(我认为主要用于测试数据)
基本上,您将进行模式迁移,您将在其中定义模型、字段等。在创建所有必要的模型以保存数据之后,您将创建一个额外的迁移,您将在其中运行类似于
Model.objects.create(field1='value1')
的代码。你知道吗我发现this guide对理解有很大帮助。下面是其中的示例:
请注意,与模式迁移的唯一区别是
migrations.RunPython
调用一个自定义函数,该函数创建您想要的任何数据。你知道吗对于South来说,这曾经是一个难题,但是由于迁移包含在vanilla Django的1.7版本中(与South是同一个开发人员),这非常容易,这要感谢在上述迁移中生成的直接代码。你知道吗
我觉得你应该用固定装置。 详情请访问 https://docs.djangoproject.com/en/dev/howto/initial-data/
相关问题 更多 >
编程相关推荐