【发布时间】:2021-05-14 04:29:31
【问题描述】:
我正在构建一个用于发送动态电子邮件的门户。表单的一部分是一个图像字段,用户可以上传我希望在图像正文中呈现的图像,而不是在填写表单后作为附件。这是我的代码:
views.py
def emailView(request):
if request.method == 'POST':
form = ContactForm(request.POST, request.FILES)
if form.is_valid():
form.save()
name = form.cleaned_data['name']
subject = form.cleaned_data['subject']
image = form.cleaned_data['image']
message = form.cleaned_data['message']
recipient = form.cleaned_data['recipient']
image_url = Email.objects.all().last()
domain = request.get_host()
final_image = str(domain) + str(image_url.image.url)
msg = loader.render_to_string(
'email_portal/email.html',
{
'name': name,
'subject': subject,
'domain' : domain,
'final_image' : final_image,
'image_url': image_url,
'message': message,
}
)
try:
send_mail(subject, name, message, [recipient]
, fail_silently=True, html_message=msg,)
except BadHeaderError:
return HttpResponse('Invalid header found.')
return redirect('/')
else:
form = ContactForm(request.POST, request.FILES)
return render(request, "email_portal/index.html", {'form': form})
电子邮件.html
<h5>{{ final_image }}</h5> #missing forward slash
<a href="{{ domain }}/{{ image_url.image.url }}">My link</a> #missing forward slash
<tr>
<td background="{{ final_image }}</td>
</tr>
我尝试连接主机和文件路径,但由于某种原因,在电子邮件正文中,它的结构正确,但我无法将其呈现为背景图像,并且当我尝试单击它时,中间缺少正斜杠主机和文件路径。
【问题讨论】:
-
哪个参考文献有问题?是
td background的h5、a href里面的那个吗? -
所有标签都有相同的问题。电子邮件中的 URL 构造良好,但是当我单击它时,主机和文件路径之间缺少正斜杠,并且在
td中没有呈现图像 -
可以分享
final_image的最终值吗? -
a href不起作用吗?您已明确添加了正斜杠...
标签: python django email html-email django-email