2010-01-14 5 views
0

저는 아주 기본적인 이메일 앱을 가지고 있습니다. 폼 클래스는 다음과 같습니다"받는 사람"을 메일로 보내기

class ContactForm(forms.Form): 
    name = forms.CharField(max_length=100) 
    subject = forms.CharField(max_length=100) 
    sender = forms.EmailField() 
    recipient_list = forms.EmailField() 
    message = forms.CharField(widget=forms.Textarea) 
    cc_myself = forms.BooleanField(initial=True) 

뷰 기능은 다음과 같습니다

def contact_name(request, id): 
    if request.method == 'POST': # If the form has been submitted... 
     form = ContactForm(request.POST) # A form bound to the POST data 
     if form.is_valid(): 
     name = form.cleaned_data['name'] 
     subject = form.cleaned_data['subject'] 
     message = form.cleaned_data['message'] 
     sender = form.cleaned_data['sender'] 
     cc_myself = form.cleaned_data['cc_myself'] 

     recipients = ['[email protected]'] 
     if cc_myself: 
      recipients.append(sender) 

     from django.core.mail import send_mail 
     send_mail(subject, message, sender, recipients) 
     return HttpResponseRedirect('/') # Redirect after POST 
else: 
    a=Entry.objects.get(pk=id) 
    form = ContactForm(instance=a) # An unbound form 
return render_to_response('email.html', { 
    'form': form, 
}) 

만큼 내가보기에받는 사람을 지정, 나는 아무 문제가 없다. 그러나 양식 필드 "받는 사람 목록"에 지정된 주소로 메시지를 보내려고합니다.

recipients = form.cleaned_data['recipient_list'] 
      if cc_myself: 
       recipients.append(sender) 

      from django.core.mail import send_mail 
      send_mail(subject, message, sender, recipients) 
      return HttpResponseRedirect('/') # Redirect after POST 

또는 : 나는이 같은 뷰 코드 구조 때 는

recipients = request.POST.get('recipient_list', '') 
       if cc_myself: 
        recipients.append(sender) 

내가 얻을 오류 " '유니 코드'개체가 어떤 속성을 '추가'를이 없습니다." 즉, 작동하지 않습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

답변

0

recipient_listEmailField이므로 유니 코드로 정리됩니다. 그러나 결과를 목록으로 처리하려고합니다. 그래서 분명히, 그것의 목록을 구성하고 모든 게 멋쟁이 :

recipients = [form.cleaned_data['recipient_list']] 
if cc_myself: 
    recipients.append(sender) 

을 ...하지만 정말 당신은 필드 recipientrecipient list이 아니라 단 1은 입력 할 수 없습니다를 호출해야합니다.

+0

오잔 감사합니다. 당신의 도움을 주셔서 감사합니다. – kjarsenal

관련 문제