4
我想编写一个脚本,该脚本不是由某个URL激活的,而是通过点击管理界面中的链接。 我该怎么做? 谢谢!django-从管理员运行脚本
我想编写一个脚本,该脚本不是由某个URL激活的,而是通过点击管理界面中的链接。 我该怎么做? 谢谢!django-从管理员运行脚本
但是一个链接必须转到一个URL,所以我认为你的意思是你想要一个仅在管理界面中可见的视图函数,并且该视图函数运行一个脚本?
如果是这样,覆盖admin/base_site.html
模板的东西这个简单:
{% extends "admin/base.html" %}
{% block nav-global %}
<p><a href="{% url your-named-url %}">Do Something</a></p>
{% endblock %}
这(应该)把链接在管理界面的顶部。
与命名方式添加您的URL到您的urls.py
然后,只需做一个普通的Django视图,并在视图检查的顶部,以确保用户是超级用户是这样的:
if not request.user.is_staff:
return Http404
这将防止未经授权的人访问此视图。
接下来,在上述代码之后的视图中,只需运行该脚本即可。
做到这一点与Python的子模块,例如:
from subprocess import call
retcode = call(["/full/path/myscript.py", "arg1"])
点击浏览器端的链接不会导致服务器做任何事情,除非它是一个超链接(即)。请编辑您的问题以澄清:您是否想将此操作取消为部分用户使用,或者您希望在点击后保留在同一页面中? – muhuk 2009-03-04 20:18:20