问题描述
我在索引页中有一个表单,表单中有 12 个输入,所以如果用户提交表单,我需要在我的电子邮件正文中输入所有 12 个输入。 我尝试了不同的方法并尝试在 google 和 youtube 上搜索,但找不到解决方案。
我的urls.py:
from django.contrib import admin
from django.urls import path,include
from . import views
urlpatterns = [
path('',views.index,name='index'),path('about/',views.about,name='about'),path('contact/',views.contact,name='contact'),]
我的views.py:
from django.shortcuts import render
from django.http import HttpResponse
from django.core.mail import send_mail
def index(request):
if request.method == "POST":
year = request.POST['year']
make = request.POST['make']
part = request.POST['part']
engine = request.POST['engine']
transmission = request.POST['transmission']
name = request.POST['name']
email = request.POST['email']
phone = request.POST['phone']
state = request.POST['state']
zipcode = request.POST['zipcode']
address = request.POST['address']
form = "Year: " + year + "Make: " + make + "Part: " + part + "Engine: " + engine + "transmission: " + transmission + "Name: " + name + "Email: " + email + "Phone: " + phone + "State: " + state + "Zipcode: " + zipcode + "Address: " + address
send_mail(
'Mail from carparts',form,'[email protected].',['[email protected]'],fail_silently=False,)
return render(request,'index.html')
def about(request):
return render(request,'about.html')
def contact(request):
return render(request,'contact.html')
谢谢
解决方法
尝试使用 EmailMultiAlternatives :
from django.core.mail.message import EmailMultiAlternatives
from django.template.loader import render_to_string
def index(request):
if request.method == "POST":
year = request.POST['year']
make = request.POST['make']
part = request.POST['part']
engine = request.POST['engine']
transmission = request.POST['transmission']
name = request.POST['name']
email = request.POST['email']
phone = request.POST['phone']
state = request.POST['state']
zipcode = request.POST['zipcode']
address = request.POST['address']
email_template = render_to_string('index_email.html',{"Year": year,"Make": make,"Part": part,"Engine":engine,....})
send_email = EmailMultiAlternatives(
"Mail from carparts",None,settings.EMAIL_HOST_USER,['[email protected]'],)
send_email.attach_alternative(email_template,'text/html')
send_email.send()
return render(request,'index.html')
创建 index_email.html
并获取所有上下文。