我刚刚完成了django应用程序的芹菜任务,但我现在正在寻找如何通过前端UI上的切换按钮启动/停止它的方法。我知道它可以在django-admin(内置(上运行。但我想为应用程序制作它。
就像从一个典型的django视图和restapi中一样,您创建了一个这样的函数:
CCD_ 1和CCD_
我该怎么做?谢谢
当然,任务只是启动时需要调用的函数,如果有task_id
,则可以撤销任务。更多关于这个答案解释
我有一个启动更新搜索索引的任务的例子。
@app.task
def update_search():
""" Update haystack """
try:
update_index.Command().handle(
remove=True, interactive=False, verbosity=2
)
except TransportError as e:
logger.error(e)
这是从使用管理员中的操作链接访问的视图中调用的;
class UpdateSearchView(View):
"""
View called from the admin that updates search indexes.
Checks the requesting user is a super-user before proceeding.
"""
admin_index = reverse_lazy('admin:index')
@staticmethod
def _update_search(request):
"""Update search index"""
update_search.delay()
messages.success(
request, _('Search index is now scheduled to be updated')
)
def get(self, request, *args, **kwargs):
"""Update search, re-direct back the the referring URL"""
if request.user.is_anonymous() or not request.user.is_superuser:
raise PermissionDenied
self._update_search(request)
# redirect back to the current page (of index if there is no
# current page)
return HttpResponseRedirect(request.GET.get('next', self.admin_index))