使用电子邮件上传 Django 文件

Har*_*rry 1 django django-forms django-file-upload

我正在尝试附加一个带有联系表格的文件。我的表单和视图代码如下所示:

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 = ['herman@xxx.co.za']
        cv_file = request.FILES['cv_file']
        mail = EmailMessage(subject, message, sender, recipients)
        mail.send()

        return HttpResponse('Thanks') # Redirect after POST
else:
    form = UploadCVForm()
Run Code Online (Sandbox Code Playgroud)

这是我的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 )
Run Code Online (Sandbox Code Playgroud)

电子邮件工作正常,但我无法附加文件,因为它不断给我一个表单错误,尽管我选择了要上传的文件,但文件上传输入字段不能为空。

有任何想法吗?我仍然是 Django 和 Python 的新手......

Dom*_*ger 5

我敢打赌你enctype="multipart/form-data"从表单模板中遗漏的钱:

<form action="/wherever/" method="POST" enctype="multipart/form-data">
Run Code Online (Sandbox Code Playgroud)

如果我每分钟都有一分钱,我就一直在努力追踪这样的错误......