2010-04-26 25 views
1

我想附加一個聯繫人窗體的文件。我的代碼看起來像這樣的表單和視圖:用電子郵件Django的文件上傳

if request.method == 'POST': 
    form = UploadCVForm(request.POST, request.FILES) 
    if form.is_valid(): # All validation rules pass 
     subject = "CV Sent from BiztechAfrica" 
     sender = form.cleaned_data['email'] 
     message = "Some message goes in here" 
     name = form.cleaned_data['name'] 
     recipients = ['[email protected]'] 
     cv_file = request.FILES['cv_file'] 
     mail = EmailMessage(subject, message, sender, recipients) 
     mail.send() 

     return HttpResponse('Thanks') # Redirect after POST 
else: 
    form = UploadCVForm() 

這是我forms.py:

class UploadCVForm(forms.Form): 
    subject = "CV Sent from BiztechAfrica" 
    name = forms.CharField(max_length=128) 
    email = forms.EmailField() 
    cv_file = forms.Field(label='CV', widget = forms.FileInput, required = True) 

電子郵件工作正常,但因爲它不斷給我一個形式,我不能附加文件儘管我選擇了要上傳的文件,但文件上傳輸入字段不能爲空。

任何想法?我仍然是一個福利局到Django和Python的...

回答

4

我敢打賭,你從你的表單模板不放過enctype="multipart/form-data"錢:

<form action="/wherever/" method="POST" enctype="multipart/form-data"> 

如果我不得不爲每分鐘我已經花了試圖一分錢跟蹤那樣的錯誤...

+0

YEA!就是這樣!如果我可以給你買一隻熊!謝謝 – Harry 2010-04-26 10:59:21

+7

一隻熊?聽起來太酷了! – 2010-04-26 11:08:38