python - 使用 Django 发送电子邮件以联系
问题描述
我正在尝试向保存在数据库中的联系人发送模板电子邮件。如何预先输入联系人的电子邮件详细信息并删除表格。我试图替换recipient = str(sub['Email'].value())
为,recipient = str(sub['lead.id'].value())
但它没有工作。
视图.py
@login_required(login_url="/login/")
def subscribe(request, lead_id):
lead = Lead.objects.get(pk=lead_id)
sub = forms.Subscribe()
if request.method == 'POST':
sub = forms.Subscribe(request.POST)
subject = 'Introduction'
message = 'Good morning,'
recipient = str(sub['Email'].value())
send_mail(subject,
message, EMAIL_HOST_USER, [recipient], fail_silently = False)
return render(request, 'subscribe/success.html', {'recipient': recipient, 'lead': lead})
return render(request, 'subscribe/index.html', {'form':sub, 'lead': lead})
表格.py
class Subscribe(forms.Form):
Email = forms.EmailField()
def __str__(self):
return self.Email
网址.py
url(r'^(?P<lead_id>[0-9]+)/subscribe$', views.subscribe, name='subscribe'),
非常感谢
解决方案
您可以遍历索引页面上的所有联系人,并将其名称在锚标签和 href 之间作为 url 以使用参数lead_id 作为人员 id 进行订阅
假设您将上下文发送到索引页面为contacts
{% for i in contacts%}
<a href='{% url 'subscribe' lead_id=i.id %}'> {{i.name}}</a>
{% endfor %}
现在在您的订阅功能中
@login_required(login_url="/login/")
def subscribe(request, lead_id):
lead = Lead.objects.get(pk=lead_id)
subject = 'Introduction'
message = 'Good morning,'
recipient = lead.email
send_mail(subject,
message, EMAIL_HOST_USER, [recipient], fail_silently = False)
return render(request, 'subscribe/success.html', {'recipient': recipient, 'lead': lead})
推荐阅读
- facebook - 添加 facebook manychat 小部件会影响 Pagepeed 洞察分数
- powershell - Azure powershell Void Newtonsoft.Json.Serialization
- c# - 3 级饼图深入分析 Highcharts
- python - 用户单击按钮时如何显示新窗口?
- rxjs - 'of' 和 'publishReplay' 不发出值
- java - 在开始时管理 JVM OldGen 峰值
- java - android.security.KeyStoreException:签名/MAC 验证失败
- facebook-graph-api - FB GraphAPI /媒体查询总是返回空数组
- python-3.x - 从 cassandra db 表到要在基于 Django 的应用程序中使用的 python 模型
- git - 递归检查是否有 git 签出文件