我正在尝试将模板中的复选框选择传递给电子邮件功能的视图。模板中的每个复选框对应于数据库中的一个类别。
联系人数据库是这样的:
NAME | CATEGORY | EMAIL
john | man | john@example.com
sue | woman | bob@example.com
spot | dog | dog@example.com
我想根据类别向联系人发送电子邮件。表格看起来有点像这样:
Target Audience: men[] women[] dogs[]
Subject:
Message:
通过选中一个或多个复选框来选择目标受众,然后将此选择列表传递给视图,在那里我可以通过电子邮件功能将其作为收件人列表传递。我在这里缺少什么步骤?
我有一个表格,我认为下面的表格可能会起作用,但此时我已经筋疲力尽了。
class EmailForm(forms.Form):
CATEGORY_CHOICES = (
...
)
subject = forms.CharField(required=True)
message = forms.CharField(required=True)
from_email = forms.CharField()
targetAudience = forms.MultipleChoiceField(choices=CATEGORY_CHOICES,
widget=widgets.CheckboxSelectMultiple())
最终我需要使用复选框TargetAudience
在视图中定义,并执行以下操作。
group = contact.objects.get(category==TargetAudience)
list = group.objects.values_list('email')
`send_mail`(mass mailing up to a few hundred) to this list.
编辑:视图放在一起
def email_test(request):
if request.method == 'GET':
form = EmailForm()
else:
form = EmailForm(request.POST)
if form.is_valid():
subject = form.cleaned_data['subject']
message = form.cleaned_data['message']
from_email = form.cleaned_data['from_email']
targetaudience = form.cleaned_data['targetAudience']
target_audience = contacts.objects.get(category=targetaudience)
email_list = target_audience.objects.values_list('email', flat=True)
send_mail(subject, message, from_email, email_list)