2011-06-06 72 views
29

我有一個自定義管理命令,可以通過電子郵件發送報告。它通常從一個cron作業運行。我想要做的是在我的web應用程序中添加一個按鈕,單擊它時會導致admin命令在那裏運行,而不是等待cron作業調用它。我該怎麼做呢?我是否必須致電命令行,如從視圖運行自定義管理命令

python manage.py myadmincmd 

或者我可以從視圖內調用代碼嗎?看起來,如果我可以在視圖內完成此操作而無需觸及命令行,它會更乾淨。

+2

正如丹尼爾說,你可以用'call_command'或組織你的代碼,這樣,無論是管理命令和視圖調用一些第三個功能實際執行郵件發送。 – 2011-06-06 11:26:57

+1

可能的重複[我怎樣才能直接從測試驅動程序調用自定義Django manage.py命令?](http://stackoverflow.com/questions/907506/how-can-i-call-a-custom-django-管理-PY-命令直接從 - 一個測試驅動器) – ChillarAnand 2015-09-15 13:21:56

回答

43

您可以使用call_command

from django.core.management import call_command 
call_command('myadmincmd') 
+1

我們可以得到網頁上的cron響應,因爲它涉及在處理命令 – PiyusG 2013-07-12 05:56:00

+0

安慰https://docs.djangoproject.com/en/1.11/ REF/Django的管理員/#運行管理的命令從 - 您的代碼 – 2017-07-08 01:16:17