首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django -迭代来自ModelMultipleChoiceField的postdata

Django -迭代来自ModelMultipleChoiceField的postdata
EN

Stack Overflow用户
提问于 2011-10-03 00:16:48
回答 1查看 327关注 0票数 0

我正在创建一个表单,将允许用户发送电子邮件给多人(学生)。

我已经使用ModelMultipleChoiceField为每个用户创建了复选框,但是我不确定如何处理发布的数据。

到目前为止,我的观点如下:

代码语言:javascript
复制
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号。我是否必须像这样过滤学生对象:

代码语言:javascript
复制
Student.objects.filter(pk__in=request.POST['students'])

或者有什么“更好”的方法?

任何建议都将不胜感激。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-03 00:24:00

您忽略了使用表单的大部分意义,即依赖表单进行验证和数据转换,以及在HTML中简单地显示字段。

代码语言:javascript
复制
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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7627533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档