如何通过Heroku网站上的按钮执行python manage.py django管理命令
我想运行Django管理命令。我想有一个用户可以通过点击按钮,它会执行它。我不需要帮助来编写它们-我让它们工作,但我始终需要从终端运行它们,如:如何通过Heroku网站上的按钮执行python manage.py django管理命令,python,django,heroku,executable,django-commands,Python,Django,Heroku,Executable,Django Commands,我想运行Django管理命令。我想有一个用户可以通过点击按钮,它会执行它。我不需要帮助来编写它们-我让它们工作,但我始终需要从终端运行它们,如: heroku run python manage.py syncdata 非常方便的是,只要点击正在运行的生产网站上的按钮,它就会为我启动它。如何在Heroku上运行的站点上实现这一点 举个简单的例子: from django.core.management.base import BaseCommand from project.models im
heroku run python manage.py syncdata
非常方便的是,只要点击正在运行的生产网站上的按钮,它就会为我启动它。如何在Heroku上运行的站点上实现这一点
举个简单的例子:
from django.core.management.base import BaseCommand
from project.models import Video
class Command(BaseCommand):
help = 'Sync Movie / Plays'
def handle(self, *args, **options):
uri_video = Video.objects.all()
for item in uri_video:
item.update(title=item.title.capitalize())
print "Done."
更新标题并不重要。在注释中添加一点内容,您可以创建一个调用以下功能的视图,并使用ajax异步调用它
from django.core import management
management.call_command("syncdata")
管理命令的
handle()
函数就是一个python函数,您可以从任何地方调用它。因此,只要构建一个调用它的视图,您的按钮就会有一个javascript使用ajax调用该视图,如果调用成功或失败,就会返回。@dirkgroten我添加了一个django命令的小示例。你能展示一个简单的示例代码如何在视图中调用它吗?如果可能的话,使用一个小的javascript/ajax返回?在@dirkgroten的回答中添加了一条注释-你能展示一个小示例如何实现这一点吗?