提供模型的初始数据-Django

时间:2019-03-02 11:29:42

标签: 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

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

应输入示例数据-

name - Super Admin
Description - This is Super Admin
name - Admin
Description - This is Admin
name - Manager
Description - This is Manager

这将帮助我完成体力劳动。谢谢。

1 个答案:

答案 0 :(得分:0)

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

python3 manage.py dumpdata --format=json role > initial_role_data.json

运行上述命令后,它将创建一个名为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"
      }
   },
]

请注意,我的database table中已经有数据。您也可以手动创建类似于上面的json文件。

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

python3 manage.py loaddata initial_role_data.json