Django - request.POST.get('wert', 'standart_wert') ?
Verfasst: Montag 5. Juli 2010, 11:02
Hallo, Experten
Habe ein Problemm, bzw. Unklarhceiten mit der request.POST.get() Methode. Diese Methode nimmt zwei Parameter ein: 1 - gesuchter Wert und 2 - standart Wert. Und hier habe ich kann ich nicht 100% nachvollziehen. Wann wird der standaer-wert zurückgegeben? Falls gesuchten wert gar nicht gibt oder es ist leer oder wie? Ich benutze das in einem Formular (feedback) mit E-Mail feld.
mysite/contact/views.py
mysite/forms.py
Das Problemm ist deutlich zu sehen, falls ich beim Formular Ausfühlen extra vergessen habe die E-Mail einzugeben.
Das ganze (das Abschicken) läuf gut, aber als absender adresse (in E-mail header) steht leerer String statt bitte_nicht_antworten@domain.org
Habe ein Problemm, bzw. Unklarhceiten mit der request.POST.get() Methode. Diese Methode nimmt zwei Parameter ein: 1 - gesuchter Wert und 2 - standart Wert. Und hier habe ich kann ich nicht 100% nachvollziehen. Wann wird der standaer-wert zurückgegeben? Falls gesuchten wert gar nicht gibt oder es ist leer oder wie? Ich benutze das in einem Formular (feedback) mit E-Mail feld.
mysite/contact/views.py
Code: Alles auswählen
from mysite.forms import ContactForm
...
def view_ContactForm (request):
if request.method == 'POST':
form = ContactForm(request.POST)
if form.is_valid():
form_data = form.cleaned_data
reply_email = form_data.get('email', 'bitte_nicht_antworten@domain.org')
new_email = EmailMessage(form_data['subject'],
form_data['message'],
reply_email,
['empfaenger@domain.com'],
headers = {
'Reply-To': reply_email
}
)
new_message.send()
...
Code: Alles auswählen
from django import forms
....
class ContactForm(forms.Form):
subject = forms.CharField(max_length=100, label='Betreff', required=False)
email = forms.EmailField(required=False, label='E-Mail')
message = forms.CharField(widget=forms.Textarea, min_length=4, label='Nachricht')
def clean_message(self):
message = self.cleaned_data['message']
num_words = len(message.split())
if num_words < 4:
raise forms.ValidationError('die Nachricht ist zu kurz')
return message
Das ganze (das Abschicken) läuf gut, aber als absender adresse (in E-mail header) steht leerer String statt bitte_nicht_antworten@domain.org