2011-10-02 25 views
0

我正在創建一個允許用戶向多個人(學生)發送電子郵件的表單。Django - 從ModelMultipleChoiceField迭代postdata

我已經使用ModelMultipleChoiceField爲每個用戶創建複選框,但是我不知道如何處理髮布的數據。

這是我的觀點至今:

if request.method == 'POST':  
     subject = request.POST['subject']     
     message = request.POST['message'] 
     email = EmailMessage(subject, message, '[email protected]', 
       recipient_addresses) 

     email.send() 
else: 

    students = Student.objects.exclude(email='') 
    form = StudentListForm(students=students) 

形式只有帖子所選收件人的ID號。是否必須過濾像這樣的學生對象:

Student.objects.filter(pk__in=request.POST['students']) 

或者有沒有更好的方法?

任何意見,將不勝感激。

感謝

回答

1

你錯過了最用一種形式,它是依靠它進行驗證和數據轉換,以及簡單地顯示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

相關問題