Django电子邮件-[Erno 2]没有这样的文件或目录



我希望允许用户从我的django应用程序通过电子邮件上传和发送文档。当我去发送电子邮件时,我收到错误"[Erno 2]没有这样的文件或目录:"。

我尝试过使用相对路径以及指定路径,但无论哪种方式,我都会遇到同样的错误。我可以看到文件正在成功加载到该位置。。。所以我觉得我一定错过了一些显而易见的东西。这是我的观点:

def email(request):
if request.method == "POST":
form = EmailForm(request.POST,request.FILES)
if form.is_valid():
post = form.save(commit=False)
# post.published_date = timezone.now()
post.save()
email = request.POST.get('email')
subject = request.POST.get('subject')
message = request.POST.get('message')
document = request.FILES.get('document')
email_from = settings.EMAIL_HOST_USER
recipient_list = [email]
email = EmailMessage(subject,message,email_from,recipient_list)
base_dir = 'media'
email.attach_file('Desktop/WBU2/Poseidon/media/media/'+str(document))
#also tried email.attach_file('/media/'+str(document))
email.send()
else:
form = EmailForm()
return render(request, 'docemail.html', {'form': form})

型号.py

class Mails(models.Model):
email = models.EmailField()
subject = models.CharField(max_length=1000)
message = models.CharField(max_length=20000)
document = models.FileField(upload_to='media')
def __str__(self):
return self.email

您可以在行首使用带有"/"的绝对路径。例如:

path = '/Users/xxx/Desktop/WBU2/Poseidon/media/media/'+str(document)

最新更新