我正在创建一个表单,将允许用户发送电子邮件给多人(学生)。
我已经使用ModelMultipleChoiceField为每个用户创建了复选框,但是我不确定如何处理发布的数据。
到目前为止,我的观点如下:
if request.method == 'POST':
subject = request.POST['subject']
message = request.POST['message']
email = EmailMessage(subject, message, 'from@example.com',
recipient_addresses)
email.send()
else:
students = Student.objects.exclude(email='')
form = StudentListForm(students=students)该表单只发布所选收件人的ID号。我是否必须像这样过滤学生对象:
Student.objects.filter(pk__in=request.POST['students'])或者有什么“更好”的方法?
任何建议都将不胜感激。
谢谢
发布于 2011-10-03 00:24:00
您忽略了使用表单的大部分意义,即依赖表单进行验证和数据转换,以及在HTML中简单地显示字段。
if request.method == 'POST':
form = StudentListForm(data=request.POST)
if form.is_valid():
subject = form.cleaned_data['subject']
message = form.cleaned_data['message']
recipients = form.cleaned_data['recipients']
recipient_addresses = [r.email for r in recipients]
email = ...基本上,您应该始终访问form.cleaned_data而不是request.POST。
https://stackoverflow.com/questions/7627533
复制相似问题