Django创建pdfs

时间:2014-07-11 22:51:44

标签: jquery python django pdf

我试图根据此链接使用我的Django应用程序创建一个简单的pdf文档

https://docs.djangoproject.com/en/dev/howto/outputting-pdf/

唯一的变化是我通过Jquery使用POST请求创建它...

jquery

$("#exportpdf").click(function(){
            //alert('Hi' + '{{request.session.sessionid}}')
            $.ajax({
            async:false
            ,url:'/createpdf'
            ,type: 'POST'
            ,data: {session_id: '{{request.session.sessionid}}'}
            ,error: function(msg){
                alert("Call to Create pdf failed")
            }

        })
        })

views.py

@csrf_exempt
def createpdf(request):
    response = HttpResponse(content_type='application/pdf')
    response['Content-Disposition'] = 'attachment; filename="somefilename.pdf"'
    p = canvas.Canvas(response)
    p.drawString(100, 100, "Hello world.")
    p.showPage()
    p.save()
    return response

问题:

当我点击exportpdf id(作为帖子请求)时使用上面的代码,pdf文档没有打开(在webserver日志中看不到任何操作/没有错误)但是当我作为GET请求直接访问/ createpdf链接时我可以看到pdf文档正确打开...

我不能发帖请求并打开pdf文档吗?它应该只是一个GET请求吗?

1 个答案:

答案 0 :(得分:0)

您在ajax调用中缺少成功回调:

http://api.jquery.com/jquery.ajax/

我会添加一个.done()处理程序