gpt4 book ai didi

python - django 中的 initial_data fixture 管理

转载 作者:太空狗 更新时间:2023-10-29 22:17:03 25 4
gpt4 key购买 nike

我正在处理的 django projet 有大量的 initial_data fixture 数据。默认情况下,自动加载数据的唯一方法似乎是在您的应用程序文件夹中有一个名为 fixtures 的文件,并且该文件需要命名为 initial_data.ext(ext是 xml 或 json 或 yaml 或其他东西)。

我认为这真的很不灵活。我宁愿有一个 fixtures 文件夹,然后在该文件夹中有一个 initial_data 文件夹,然后在里面,该应用程序中的每个模型都有一个文件。或者类似的东西。现在可以在 django 中这样做吗?或者可能是其他一些更好的 fixture 组织方案。

最佳答案

根据我的经验,硬编码的固定装置写起来很痛苦,维护起来也很痛苦。每当模型更改破坏固定装置时,Django 初始加载将返回非常不友好的错误消息,您最终将在 Django 核心中添加一堆打印,以便找到问题的根源。

与我一起工作的一位开发人员开发了一个非常好的库来解决这个问题,它叫做 django-dynamic-fixture我们真的很喜欢它。这是它的工作原理:

假设你有这个模型:

class Author(models.Model):
name = models.CharField()

class Book(models.Model):
author = models.ForeingKey(Author, required=True)
title = models.CharField()

为了在你的测试中创建一个书籍实例,你所要做的就是

from django_dynamic_fixture import get
from app import Book

class MyTest(TestCase):
def setUp(self):
self.book = get(Book)

django-dynamic-fixture 会自动为您创建 Book 模型存在所需的任何依赖项。这只是一个简单的示例,但该库可以处理非常复杂的模型结构。

关于python - django 中的 initial_data fixture 管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4400609/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com