0
我一直在试图让django在用户输入他的电子邮件时发送邮件给一个用户,但它一直失败。例如,用户A向我的列表和django注册发送邮件。用户B注册我的列表和Django发送用户A和B的邮件。Django的send_mail函数一直在失败
我不想要那种过程,我想在每个用户填写他们的电子邮件地址后发送邮件给每个用户。因此,当另一个用户注册django不会将当前用户和已经在数据库中的用户发送相同的邮件。
下面是我的代码:
发送邀请
Subject='Join Me'
message=loader.get_template('letter.txt')
from_email='[email protected]'
def invite_me(request):
if request.method=="POST":
form=InviteForm(request.POST)
if form.is_valid():
form.save()
#get input data and send email to the user.
send_mail(Subject,message.render(Context()),from_email,Invite.objects.values_list('email_address', flat=True))
return HttpResponse('Thanks For Inputting Your Email, Go Check Your Inbox!')
else:
return HttpResponse('Invalid Email Address')
else:
form=InviteForm()
return render_to_response('home.html',{'InviteForm':InviteForm},context_instance=RequestContext(request))
我试过了,但我得到一个TypeError:'Invite'对象不可迭代。即使我选择这样做:Invite.objects.latest('email_address')我仍然会得到相同的错误。我如何使列表可迭代? – picomon
@picpic两件事。首先,你可能忘了在'invite'周围添加'['']'。其次,我犯了一个错误,它应该是'[invite.email_address]'而不是'[invite]'。在旁注中,使用'.latest'会使你暴露于竞争条件,你应该避免它。 –
非常感谢!你摇滚。 :) – picomon