Javascript 在Django中使用xhtml2pdf生成PDF时出现问题
我尝试在Django中使用xhtml2pdf生成一个PDF,它基于我将在request.POST中获取的数据。 我曾经使用HTML表单和submit按钮发送数据,将数据提交到视图。一切都很好,我把生成的PDF附加到浏览器上。 但问题是,我尝试过使用AJAX,似乎一切正常,我得到了渲染的PDF。但PDF没有附上。我认为,当我使用普通HTML表单发送邮件时,幕后会发生一些事情,而使用Ajax则不会发生这种情况Javascript 在Django中使用xhtml2pdf生成PDF时出现问题,javascript,python,django,Javascript,Python,Django,我尝试在Django中使用xhtml2pdf生成一个PDF,它基于我将在request.POST中获取的数据。 我曾经使用HTML表单和submit按钮发送数据,将数据提交到视图。一切都很好,我把生成的PDF附加到浏览器上。 但问题是,我尝试过使用AJAX,似乎一切正常,我得到了渲染的PDF。但PDF没有附上。我认为,当我使用普通HTML表单发送邮件时,幕后会发生一些事情,而使用Ajax则不会发生这种情况 def create_pdf(request): data = json.load
def create_pdf(request):
data = json.loads(request.POST["courses"])
context = {
"courses": data
}
template = "teachers/course_template.html"
pdf = render_to_pdf(template, context)
if pdf:
response = HttpResponse(pdf, content_type="application/pdf")
filename = "plan.pdf"
content = "attachment; filename=%s" % filename
download = request.GET.get("download")
if download:
content = "attachment; filename=%s" % filename
response["Content-Disposition"] = content
return response
return HttpResponse("Not found.")
def render_to_pdf(template_src, context_dict={}):
template = get_template(template_src)
html = template.render(context_dict)
result = BytesIO()
pdf = pisa.pisaDocument(
BytesIO(html.encode("UTF-8")), result, encoding="UTF-8")
return HttpResponse(result.getvalue(), content_type="application/pdf")
我通过以下方式发送数据:
$(".btnCreatePlan").click(function (e) {
e.preventDefault()
// Send courses to the view
var CSRFToken = $("input[name=csrfmiddlewaretoken]").val();
var parameters = {
"workouts": JSON.stringify(workouts),
"csrfmiddlewaretoken": CSRFToken
};
$.ajax({
url: "http://localhost:8000/teachers/requests/create/pdf/",
method: "post",
data: parameters,
success: function(res) {
window.location.href=res.redirect_url;
console.log(res)
},
error: function(er){
console.log(er);
}
});
});