python - 下载 Django 表单填充的 HTML 模板页面
问题描述
我有一个模板页面,当我填写Django form
. 这个页面很简单HTML page
,数据来自我的表单。我希望能够下载填充的模板。也就是说,获取一个允许下载模板的浏览器窗口或通过单击将 HTML 模板保存在某处的按钮(因为此 HTML 模板需要在邮件中插入)。
这是我的views.py文件中的代码:
class TemplateGenerator(TemplateView):
''' This class displays the form and lets to save data into my database.
It redirects users to the filled HTML template '''
form_class = CommunicationForm
template_name = 'form.html'
success_url = '/HTML_Result/'
def get(self, request):
form = self.form_class()
return render(request, self.template_name, {'form': form})
def post(self, request):
form = self.form_class(request.POST, request.FILES)
if form.is_valid():
form.save()
return redirect('HTML_Result')
args = {'form': form}
return render(request, self.template_name, args)
class HTMLResult(TemplateView):
''' This class displays the template filled thanks to the form from TemplateGenerator() class '''
template_name = 'template_1.html'
def get(self, request):
data = Communication.objects.values().latest('id')
self.donwload_html()
return render(request, self.template_name, {'data': data})
def donwload_html(self):
file_path = os.path.join(settings.MEDIA_ROOT, 'media')
if os.path.exists(file_path):
with open(file_path, 'rb') as fh:
response = HttpResponse(fh.read(),
content_type="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
response['Content-Disposition'] = 'inline; filename=' + 'test'
return response
raise Http404
file_path
当我尝试访问媒体文件夹时,我的权限被拒绝。但在我看来,与我想要获得的功能相比,我的功能可能是错误的。
你有什么主意吗 ?
我知道我需要使用Content-Disposition
才能下载 HTML 页面,但我找不到正确使用它的方法。
提前谢谢你
解决方案
推荐阅读
- matlab - 如何创建二进制 [0,1]?
- php - 添加自定义 Wordpress 小部件会使媒体库崩溃
- javascript - IE 无法使用动态加载脚本中的 Js 类
- java - 为什么 Spring 有时不将请求委托给控制器?
- laravel - Laravel 重定向到可选页面后注销
- alamofire - Alamofire重试请求后如何跟踪URLSessionTask
- list - NetLogo:如何比较两个子列表
- mingw - SFML 编译运行缺少 dll
- android - 有意分享的视频仅在我自己的应用中播放
- python - 多元线性回归,对 Python 上的每个系数都有特定约束