gpt4 book ai didi

python - 直接从 Django 管理网页运行自定义 python 脚本

转载 作者:行者123 更新时间:2023-12-01 03:21:30 24 4
gpt4 key购买 nike

我编写了一个 python 脚本,该脚本从一个模型获取输入,对其进行查询,然后通过 ForeignKey 关系将查询的各种结果附加到另一个模型。它在 python shell 中运行良好,但我想知道是否有一种方法可以从管理网页运行它,以便每次提交第一个模型的新对象时,它都会运行脚本并为另一个自动更新数据库模型。我正在使用 Django 管理界面作为开发人员进行数据输入的一部分,因为我发现它是一个非常灵活的界面。该脚本是专门为此应用程序编写的,因此它位于应用程序的文件夹中。

最佳答案

我很惊讶这个问题还没有得到解答。

将现有脚本包装为 management command ,或将其导入管理命令。

完成后,您可以覆盖有问题的管理 View ,l ike this. .

from django.contrib.admin import AdminSite
from django.views.decorators.cache import never_cache

class MyAdminSite(AdminSite):
@never_cache
def index(self, request, extra_context=None):
# do stuff

然后,您创建此类的一个实例,并使用该实例而不是 admin.site 来注册您的模型。

admin_site = MyAdminSite()

然后,稍后:

from somewhere import admin_site

class MyModelAdmin(ModelAdmin):
...

admin_site.register(MyModel, MyModelAdmin)

最后,在那个覆盖 View 中,您可以使用 management.call_command 从您的代码到 call the management command .这使您可以从命令行和代码内部使用它 - 如果需要,您也可以从 cron 安排它。 :)

关于python - 直接从 Django 管理网页运行自定义 python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44788882/

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