我想编写一个不是由某个URL激活的脚本,而是通过单击管理界面中的链接.我该怎么做呢?谢谢!
但链接必须转到URL,所以我认为你的意思是你想要一个只在管理界面中可见的视图功能,并且该视图函数运行一个脚本?
如果是这样,请admin/base_site.html
使用以下简单方法覆盖模板:
{% extends "admin/base.html" %} {% block nav-global %} {% endblock %}
这(应该)将链接放在管理界面的顶部.
将带有命名模式的网址添加到您的urls.py中
然后只需创建一个正常的django视图,并在视图的顶部检查以确保用户是超级用户,如下所示:
if not request.user.is_staff: return Http404
这将防止未经授权的人访问此视图.
接下来,在上面的代码之后的视图中,只需运行脚本.
使用Python的子进程模块执行此操作,例如:
from subprocess import call retcode = call(["/full/path/myscript.py", "arg1"])