获取Django views.py 返回并执行javascript [英] Get Django views.py to return and execute javascript

查看:34
本文介绍了获取Django views.py 返回并执行javascript的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所以我正在处理 django 和文件上传,我需要一个 javascript 函数在文件上传后执行.我的 views.py 中有一个文件上传处理程序,如下所示:

So I'm working with django and file uploads and I need a javascript function to execute after the file has been uploaded. I have a file upload handler in my views.py which looks like this:

def upload_file(request):   
    form = UploadFileForm(request.POST, request.FILES)
    if form.is_valid():        
        for f in request.FILES.getlist('fileAttachments'):     
            handle_uploaded_file(f)
        return HttpJavascriptResponse('parent.Response_OK();')
    else:
        return HttpResponse("Failed to upload attachment.")

我从 http://djangosnippets.org/snippets/341/ 中找到了一个 django 片段我将 HttpJavascriptResponse 类放在我的 views.py 代码中.如下所示:

And I found a django snippet from http://djangosnippets.org/snippets/341/ and I put the HttpJavascriptResponse class in my views.py code. It looks as follows:

class HttpJavascriptResponse(HttpResponse):
    def __init__(self,content):
       HttpResponse.__init__(self,content,mimetype="text/javascript")

但是,当我上传文件时,浏览器会简单地呈现parent.Response_OK();"在屏幕上而不是实际执行 javascript.Chrome 给了我警告:资源被解释为文档,但使用 MIME 类型文本/javascript 传输"

However, when I upload a file the browser simple renders "parent.Response_OK();" on the screen instead of actually executing the javascript. And Chrome gives me the warning: "Resource interpreted as Document but transferred with MIME type text/javascript"

有没有办法让views.py来执行脚本?

Is there anyway to get views.py to execute the script?

推荐答案

我相信这会奏效.

return HttpResponse("<script>parent.Response_OK();</script>")

但是,您可能会考虑在这种情况下返回成功(200)状态代码,然后将父级中的一些 javascript 附加到此子级的加载事件,并根据返回状态代码进行分支.这样你就可以分离视图渲染代码和视图行为代码.

However, you might think about returning a success (200) status code in this case, and then having some javascript in parent attach to the load event of this child, and branch based on return status code. That way you have a separation of view rendering code and view behavior code.

这篇关于获取Django views.py 返回并执行javascript的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆