Я работаю над формой для отправки электронной почты, где есть дополнительное приложение.Отправка электронной почты с дополнительным приложением в django
Когда я пытаюсь отправить электронное письмо без прикрепленного файла. Я получил эту ошибку
Key «файл» не найден в MultiValueDict: {}
Любая идея, что я делаю неправильно? Я хотел бы, чтобы отправить его непосредственно на адрес электронной почты без загрузки файла на нашем сервере
forms.py
class jopcion(forms.Form):
subject = forms.CharField(max_length=100)
thecontent = forms.CharField(widget=forms.Textarea)
file = forms.FileField(widget= forms.FileInput (attrs={'name': 'file'}),required=False)
views.py
def novo(request, template_name='mailme.html'):
if request.method == "POST":
formulario = jopcion(request.POST or None, request.FILES or None)
if formulario.is_valid():
subject = request.POST['subject']
message = request.POST['thecontent']
attach = request.FILES['file']
destination = '[email protected]'
html_content = (subject,message,attach)
msg = EmailMultiAlternatives('Customer email address', html_content, 'fr[email protected]', [destination])
msg.attach(attach.name, attach.read(), attach.content_type)
msg.attach_alternative(html_content, 'text/html')#definimos el contenido como html
msg.send() #enviar en correo
return render_to_response('done.html', context_instance=RequestContext(request))
else:
formulario = jopcion()
ctx = {'form': formulario, 'text_dc': file}
return render_to_response(template_name, ctx , context_instance = RequestContext(request))
Ваш код не проверяет, существует ли 'FILES ['file']' перед попыткой его извлечения и прикрепить его к письму. Если это необязательно, вам нужно сначала проверить, существует ли он, прежде чем пытаться его подключить. – solarissmoke