django - запустить скрипт от админа - PullRequest
4 голосов
/ 04 марта 2009

Я хотел бы написать скрипт, который активируется не по определенному URL, а по ссылке в интерфейсе администратора. Как мне это сделать? Спасибо!

1 Ответ

10 голосов
/ 04 марта 2009

Но ссылка должна идти на 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"])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...