django - Django:在电子邮件中添加下载链接
问题描述
我正在尝试在我的电子邮件中添加下载链接,以便下载存储在媒体目录中的 pdf 文件。我没有克服在我的电子邮件内容中创建此 url 链接。
这是我views.py
的 post 功能:
def post(self, request, *args, **kwargs):
form = self.form_class()
document_choice = request.POST.getlist('DocumentChoice')
if request.method == 'POST':
form = self.form_class(request.POST)
for checkbox in document_choice:
document_edqm_id = Document.objects.get(id=checkbox).edqm_id
email = request.POST['email']
plain = email + document_edqm_id + str(datetime.now())
token = hashlib.sha1(plain.encode('utf-8')).hexdigest()
Download.objects.create(email=email, pub_id=checkbox, token=token)
document_link = Document.objects.get(id=checkbox).upload
print(document_link)
context = {'document_link': document_link}
if form.is_valid():
message = get_template('app/message.txt').render(context)
html_message = get_template('app/message.html').render(context)
subject = 'yoto'
mail = EmailMultiAlternatives(subject, message, 'app@tec.eu', [email])
mail.attach_alternative(html_message, "text/html")
mail.send(fail_silently=False)
print('Email envoyé à ' + email)
else:
print('form invalid')
return HttpResponseRedirect(self.get_success_url())
还有我的 message.txt 和 message.html 文件:
#message.txt
== This E-mail is automatically generated, please do not reply to it ==
{{ document_link }}
You can use this link as much as you like. It will expire in 0 days.
和
#message.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
</head>
<body>
<p>== This E-mail is automatically generated, please do not reply to it ==</p>
<br>
<a href="http://localhost:8000/media/{{ document_link}}">Download</a>
<br>
<p>You can use this link as much as you like. It will expire in 0 days.</p>
<br>
</body>
</html>
结果 :
我克服了将文件显示到新标签中,但我想下载这个
问题 :
到目前为止,我如何添加下载文件链接而不是在新选项卡中显示文件?
谢谢
解决方案
推荐阅读
- c# - 仅当属性不为空 C# 时才将属性添加到匿名类型
- web-scraping - 如何在 subreddit 数据抓取中应用时间限制?
- r - 具有多个变量的线性回归模型引发错误
- sequelize.js - 如果条件未找到值,如何返回默认值
- python - 当窗口调整大小时,动态调整 tkinter 窗口上的所有小部件的大小
- ruby-on-rails - ActionView::Template::Error(缺少部分视图/作业/_index with {:locale=>[:en], :formats=>[:html], :variants=>[],
- oracle - 如何将数据库名称添加到 Oracle 错误?
- postgresql - dbeaver会话管理器sql长度限制问题与执行计划
- typescript - 根据其属性值获取对象类型
- python - 我可以通过 MQTT 中的一个主题发送多个数据吗?