在中填充表条目型号.py

2024-06-16 08:59:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我是数据库新手,所以我的想法可能有缺陷,但是我想使用Django为一个webapp定义一个带有固定条目(=初始数据)的表。这些条目将被定义一次,保持不变,并且在本地和协作者提取代码时应该存在。我想这会使开发阶段变得更容易,在开发阶段,我必须从零开始设置整个数据库好几次,一些初始数据是从零开始自动填充的型号.py. 有办法进去吗型号.py用这些条目填充表?你知道吗

class Field(models.Model):
    name = models.CharField(max_length=200)
    created_timestamp = models.DateTimeField(auto_now_add=True)

Tags: 数据django代码py数据库定义models条目
2条回答

所使用的术语是初始数据,正如第一条评论中已经指出的,而不是固定数据。你知道吗

一旦您的应用程序投入生产,就可以编辑或删除初始数据中的条目,以防您在业务逻辑中提供适当的操作。你知道吗

非常重要的一点是,如果您使用以下命令将初始数据作为fixture(JSON、YML等)提供:

python manage.py loaddata path/to/your/data

不会调用模型方法save。您还有以下字段:

created_timestamp = models.DateTimeField(auto_now_add=True)

不会自动填充的。这意味着,如果为类Field提供数据,则必须为上述字段提供值:

你的设备可能看起来像这样:

[
    {
        "model": "app_label.field",
        "pk": 1,
        "fields": {
            "name": "foo",
            "created_timestamp": "2018-03-12 12:00:00"
        }
    },
    # further entries
]

如果主键(“pk”)是自动字段,则可以省略它。然后它将由数据库系统自动填充。你知道吗

如果您在应用程序目录中创建一个目录fixtures,那么您只需调用其名称即可加载该设备。假设你有这样的结构:

- project
    - manage.py
    - yourapp
        - admin.py
        - models.py
        - fixtures
            field.json

然后你可以做:

python manage.py loaddata field

一个类只是一个蓝图,将根据它创建实际的实例。你知道吗

你可能有两个选择: 1您可以通过代码中的create()或save()方法填充条目。无论如何,您的类中应该有默认值,因此只需使用

你知道吗model.objects.create创建()

将自动使用具有默认值的实例填充数据库。你知道吗

  1. 如果你已经设置了你的管理页面,你可以在那里创建模型条目。你知道吗

相关问题 更多 >