gpt4 book ai didi

django - 如何从所有应用程序加载 Django 装置?

转载 作者:行者123 更新时间:2023-12-04 21:54:27 25 4
gpt4 key购买 nike

我在我的 Django 应用程序中使用夹具,但只有两个应用程序正在加载它们的夹具。

当我使用 --verbosity=2 手动运行 loaddata 时,我可以看到它只在两个应用程序中查找,尽管我在其中创建了更多的设备目录。

所有应用程序都正确安装在 settings.py 中。

从文档看来,Django 应该在每个已安装应用程序的 fixtures/目录中进行搜索。

为什么某些应用程序被忽略的任何想法?

最佳答案

每次执行同步数据库时都会导入 Initial_data。正如我所记得的那样,它还会覆盖您手动完成的任何更改。

要加载其他装置,您必须使用 manage.py loaddata夹具名称。
如果您在所有应用程序中使用通用命名方案,那效果会很好。
如果不这样做,则必须为每个 loaddata 指定名称,或者使用 find 来获取
每一个中的装置和 exec loaddata 的列表:

编辑:(因为我在安装 django 包时将 manage.py 添加到 virtualenv 中的/bin 我只使用 manage.py,如果你不使用,你当然需要 python manage.py loaddata)

find . -name "*.json" -exec manage.py loaddata {} \;

我在 fabfile 中使用它来自动化分段安装:
def load_all_fixtures():
"""Loads all the fixtures in every dir"""
with cd(env.directory):
run("""
source /usr/local/bin/virtualenvwrapper.sh &&
workon %s &&
find -L . -name "*.json" -exec manage.py loaddata {} \;

""" % env.virtualenv )

关于django - 如何从所有应用程序加载 Django 装置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5167276/

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