Javascript 使用信号的Django加载页面?
我有一个很长的过程,在这个过程中,我的应用程序与服务器通信,根据服务器的响应保存模型,然后重新启动通信。我想向用户展示一个加载页面,该页面在保存模型时更新。例如:Javascript 使用信号的Django加载页面?,javascript,django,Javascript,Django,我有一个很长的过程,在这个过程中,我的应用程序与服务器通信,根据服务器的响应保存模型,然后重新启动通信。我想向用户展示一个加载页面,该页面在保存模型时更新。例如: Working on request 1... Saving model 1... Working on request 2... Saving model 2... Finished task. [Back to Homepage] 我已经通读了(jango-show在长时间处理过程中加载消息)及其链接;第一个建议行不通,第
Working on request 1...
Saving model 1...
Working on request 2...
Saving model 2...
Finished task.
[Back to Homepage]
我已经通读了(jango-show在长时间处理过程中加载消息)及其链接;第一个建议行不通,第二个建议需要线程、缓存等。我还通读了信号的文档
假设保存的模型是modelfafterresponse
。我的观点可能是这样的:
@receiver(post_save, sender=ModelAfterResponse)
def loading_page(sender, instance, created, **kwargs):
model_name = kwargs['instance'].name
return render(request, 'name/javascript_template.html', {"name": name}, content_type="application/x-javascript")
<script>
$('#some_loading_page_specific_div').innerHTML = "Working on " + {{ name }}
</script>
而javascript\u template.html
可能如下所示:
@receiver(post_save, sender=ModelAfterResponse)
def loading_page(sender, instance, created, **kwargs):
model_name = kwargs['instance'].name
return render(request, 'name/javascript_template.html', {"name": name}, content_type="application/x-javascript")
<script>
$('#some_loading_page_specific_div').innerHTML = "Working on " + {{ name }}
</script>
$('some#loading_page_specific_div')。innerHTML=“处理”+{{name}
这只是快速模拟代码,但我有它的要点吗?当我像上面那样装饰一个函数,并做一些简单的事情,比如返回HttpResponse(“:D”)
,什么都不会发生,所有的东西都会继续运行,而且:D
也找不到
我相信我在正确的轨道上。有没有一个简单的方法来完成我想要的 不,不幸的是你没有走上正确的道路。这不是信号的用途,不能从信号中渲染数据。任何呈现数据的东西都需要在视图中。@DanielRoseman啊,糟糕透了。如果你不介意我问,如果不是这个,信号是用来干什么的?另外,是否有一种方法可以以我想要的方式更新页面,而无需重新加载页面/停止进程?我不确定如何从视图中调用AJAX(或者如果我已经在视图中,为什么我会这样做!)信号可以用于更新数据库或发送电子邮件等操作。但是,我不明白您从视图中调用Ajax是什么意思;您可以从HTML调用Ajax。@DanielRoseman啊。我的意思是:为了在保存模型(更新加载页面)时调用AJAX,我可能需要在视图中触发与HTML相关的内容(在保存模型时)。如果我使用返回HttpResponse([etc.])
,这将停止for循环。我不确定如何使用信号更新加载页面,并且不从视图返回某些内容