Ich versuche, Dateieingabe von einem HTML-Formular ohne Verwendung von Django Formular und dann anhängen diese Datei an E-Mail.Django - wie Dateieingaben ohne Verwendung von Django Formular zu erhalten und an die Datei anhängen
Mein HTML:
<form method="post" action="{% url 'foo' %}" enctype="multipart/form-data">
<input type="file" name="file1"/>
</form>
Mein views.py:
def foo(request):
if not request.FILES['file1']:
return render(request, 'index.html', {})
email_msg = EmailMessage(subject="email subject", body="email body",
from_email="[email protected]", to=["[email protected]"])
email_msg.attach_file(request.FILES['file1'])
email_msg.send()
return render(request, 'needs-confirmation.html', context
Ich habe zwei Fragen. Zuerst, in der Funktion foo, setze ich die if-Anweisung, um zuerst zu prüfen, ob der Benutzer die Datei abgelegt hat und dass file1 existiert. Dies funktioniert gut, wenn eine Datei als Datei1 hochgeladen wird, aber dies gibt einen Fehler, wenn Datei1 keine Dateieingabe hat. Wie kann ich überprüfen, ob Datei1 existiert oder nicht? Die zweite Frage ist, wenn ich Datei anhängen ich versucht, diesen Fehler email_msg, nicht attach_file Funktion nicht funktioniert, geben:
'InMemoryUploadedFile' object has no attribute 'replace'
Wie kann ich Datei von HTML-Formular erhalten und die Datei an eine E-Mail anhängen? Danke.