Django 1.10とPython 3.5.2を使用して作成されたScreenPrinting会社のシンプルなウェブサイトがありますが、 "Get a Quote"ページ。私のユーザが画像を電子メールでアップロードするにはどうすればいいですか?[Django]
ユーザーはwww.example.com/quote/にアクセスでき、フォームが表示されます。ここで彼らは彼らの名前、電子メールアドレス、簡単なメッセージを入れ、最も重要なのはイメージをアップロードできることです。
送信をクリックすると、このデータはEmailMessageメソッドを使用して電子メールアドレスに電子メールとして送信されます。過去の私は簡単な電子メールフォームを設定していますので、settings.pyファイルは問題ありません。ここで
は私forms.pyです:ここでは
class QuoteForm(forms.Form):
name = forms.CharField(required=True)
from_email = forms.EmailField(required=True)
subject = "Quote"
uploaded_image = forms.ImageField()
message = forms.CharField(widget=forms.Textarea)
は私のviews.pyです:私は127.0.0.1にこれをテストする場合
def quote(request):
form = QuoteForm(request.POST)
if form.is_valid():
name = form.cleaned_data['name']
from_email = form.cleaned_data['from_email']
message = form.cleaned_data['message']
message = "From: " + name + "\n" + "Return Email: " + from_email + "\n" + "Subject: " + subject + "\n" + "Message: " + message
uploaded_image = form.cleaned_data['uploaded_image']
msg = EmailMessage(subject, message, from_email, ['[email protected]'], reply_to=[from_email])
msg.attach_file(uploaded_image)
try:
msg.send()
except BadHeaderError:
return HttpResponse('Invalid header found')
return HttpResponseRedirect('thankyou')
return render(request, "quote.html", {'form': form})
私が提出クリックして、フォームが同じでリフレッシュしますinfo、イメージはもう存在しません。
また、console.EmailBackendを使用してテストすると、エラーは発生しません。実際、submitをクリックしてもいくつかのcssファイルをリロードする以外の効果はないようです。
アイデア?