为模型提供初始数据 - Django

Huz*_*yed 4 django django-models

我想在 Django 模型中输入默认值。就像我创建了一个Role模型

class Role(models.Model):
    name = models.CharField(max_length=30)
    description = models.CharField(max_length=100)

    class Meta:
        verbose_name = _('role')
        verbose_name_plural = _('roles')
        db_table = "role"

    def __str__(self) : 
        return self.name
Run Code Online (Sandbox Code Playgroud)

我想在迁移时输入默认值 -makemigrationsmigrate.

应输入示例数据 -

name - Super Admin
Description - This is Super Admin
name - Admin
Description - This is Admin
name - Manager
Description - This is Manager
Run Code Online (Sandbox Code Playgroud)

这将帮助我完成手工工作。谢谢你。

Huz*_*yed 8

我找到了方法。首先,我们将JSON使用以下行创建一个文件。注意 -role是应用程序名称。

python3 manage.py dumpdata --format=json role > initial_role_data.json
Run Code Online (Sandbox Code Playgroud)

运行上述命令后,它将创建一个名为的文件initial_role_data.json,其中包含类似这样的数据 -

[
   {
      "model":"role.role",
      "pk":1,
      "fields":{
         "name":"Super Admin",
         "description":"This is Super Admin"
      }
   },
   {
      "model":"role.role",
      "pk":2,
      "fields":{
         "name":"Admin",
         "description":"This is Admin"
      }
   },
]
Run Code Online (Sandbox Code Playgroud)

请注意,我的database table. 您也可以手动创建类似于上面的 json 文件。

一旦json被生成的文件,我们将加载数据。

python3 manage.py loaddata initial_role_data.json 
Run Code Online (Sandbox Code Playgroud)