【问题标题】:django- run a script from admindjango-从管理员运行脚本
【发布时间】:2010-10-11 03:53:52
【问题描述】:

我想编写一个不是由某个 URL 激活的脚本,而是通过单击管理界面中的链接来激活的。 我该怎么做呢? 谢谢!

【问题讨论】:

标签: python django


【解决方案1】:

但是链接必须指向 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 的 subprocess 模块执行此操作,例如:

from subprocess import call
retcode = call(["/full/path/myscript.py", "arg1"])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-08
    • 1970-01-01
    • 1970-01-01
    • 2013-01-16
    相关资源
    最近更新 更多