为模型提供初始数据- Django

l7wslrjt  于 2023-01-10  发布在  Go
关注(0)|答案(1)|浏览(139)

我想在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

这将有助于减少我需要执行的手动工作量。。谢谢。

yks3o0rb

yks3o0rb1#

我发现了一个很好的方法。首先我们使用下面的代码创建一个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

相关问题