在 django admin 中设置初始(默认)实例
Set initial (default) instances in django admin
我正在构建一个博客应用程序,我正在尝试添加 inbuilt initial instances in django admin
,因此当用户克隆存储库时,即使在 reset the database
之后,用户每次都会看到几个初始 blogs
。
我没有找到设置初始数据的地方。我也试过 How to set initial data for Django admin model add instance form? 但这不是我想要做的。
models.py
class BlogPost(models.Model):
title = models.CharField(max_length=1000)
body = models.CharField(max_length=1000)
我试过用Providing data with fixtures但是我不知道,我该如何存储。
如有任何帮助,我们将不胜感激。谢谢。
夹具仍然需要手动加载。您可以将该步骤添加到安装说明中,例如“加载示例数据,通过 manage.py loaddata ./my_blog_fixture.json
安装提供的固定装置
如果你想在没有任何用户操作的情况下将数据插入数据库,那么你正在寻找 Data Migration
这是一种数据库迁移,不会以任何方式改变数据库结构,但会执行自定义命令,例如。插入一些数据。下面是一个示例(需要进行调整以匹配您的应用程序名称)。您可以生成空迁移(推荐)或将 RunCommand 附加到现有迁移中。
生成新的空迁移运行makemigrations
$ manage.py makemigrations your_app_name --empty
然后编辑迁移并在其中添加 RunPython
(参见上面的链接文档)。
from django.db import migrations
def insert_blogpost(apps, schema_editor):
BlogPost = apps.get_model('your_app_name', 'BlogPost')
post = BlogPost(title="hello", body="post content")
post.save()
class Migration(migrations.Migration):
dependencies = [
('your_app_name', '0001_initial'),
]
operations = [
migrations.RunPython(insert_blogpost),
]
我正在构建一个博客应用程序,我正在尝试添加 inbuilt initial instances in django admin
,因此当用户克隆存储库时,即使在 reset the database
之后,用户每次都会看到几个初始 blogs
。
我没有找到设置初始数据的地方。我也试过 How to set initial data for Django admin model add instance form? 但这不是我想要做的。
models.py
class BlogPost(models.Model):
title = models.CharField(max_length=1000)
body = models.CharField(max_length=1000)
我试过用Providing data with fixtures但是我不知道,我该如何存储。
如有任何帮助,我们将不胜感激。谢谢。
夹具仍然需要手动加载。您可以将该步骤添加到安装说明中,例如“加载示例数据,通过 manage.py loaddata ./my_blog_fixture.json
如果你想在没有任何用户操作的情况下将数据插入数据库,那么你正在寻找 Data Migration
这是一种数据库迁移,不会以任何方式改变数据库结构,但会执行自定义命令,例如。插入一些数据。下面是一个示例(需要进行调整以匹配您的应用程序名称)。您可以生成空迁移(推荐)或将 RunCommand 附加到现有迁移中。
生成新的空迁移运行makemigrations
$ manage.py makemigrations your_app_name --empty
然后编辑迁移并在其中添加 RunPython
(参见上面的链接文档)。
from django.db import migrations
def insert_blogpost(apps, schema_editor):
BlogPost = apps.get_model('your_app_name', 'BlogPost')
post = BlogPost(title="hello", body="post content")
post.save()
class Migration(migrations.Migration):
dependencies = [
('your_app_name', '0001_initial'),
]
operations = [
migrations.RunPython(insert_blogpost),
]