gpt4 book ai didi

python - AppConfig.ready() 在 Django 安装程序上运行两次(使用 Heroku)

转载 作者:太空狗 更新时间:2023-10-30 00:34:30 26 4
gpt4 key购买 nike

我有一个函数需要在我的一个网络应用程序的后台运行。

我实现了一个自定义 AppConfig,如下所示:

class MyAppConfig(AppConfig):
run_already = False

def ready(self):
from .tasks import update_products
if "manage.py" not in sys.argv and not self.run_already:
self.run_already = True
update_products()

但是,这个命令被执行了两次(调用 update_products())

As stated in the documentation:

In the usual initialization process, the ready method is only called once by Django. But in some corner cases, particularly in tests which are fiddling with installed applications, ready might be called more than once. In that case, either write idempotent methods, or put a flag on your AppConfig classes to prevent re-running code which should be executed exactly one time.

我觉得我正在按照文档中的说明去做。给了什么?

最佳答案

如本 answer 所述,如果您正在运行您的应用程序,在 Django 上使用 python manage.py runserver 命令,您的应用程序将运行两次:一次用于验证您的模型,另一次用于运行您的应用程序。

您可以通过将选项 --noreload 传递给 runserver 命令来更改此设置。

关于python - AppConfig.ready() 在 Django 安装程序上运行两次(使用 Heroku),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43577426/

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