Ich erstelle ein Kontaktformular in Django, um eine E-Mail zu senden, aber das Formular wird nicht auf der Webseite angezeigt. Ich denke, dass das Problem möglicherweise daran liegt, dass das Formularobjekt nie korrekt an den Kontext übergeben wurde, aber ich habe keine Ahnung, wo es falsch läuft. Der Code unten ist was ich bisher habe.Mein Formular zeigt keine Felder an und ich kann nicht herausfinden, warum
from .forms import *
Meine Ansichten
def email(request):
form = ContactForm()
if request.method == 'POST':
form = ContactForm(request.POST)
if form.is_valid():
subject = form.cleaned_data['subject']
email = form.cleaned_data['email']
first_name = form.cleaned_data['first_name']
message = form.cleaned_data['message']
try:
send_mail(first_name + ": " + subject, message, email,
['[email protected]'])
except BadHeaderError:
return HttpResponse("Invalid Header.")
return redirect('thankyou')
return render(request, 'Index-App/contact.html', {'form': form})
Meine Form Klasse
class ContactForm(forms.Form):
subject = forms.CharField(required=True)
from_email = forms.EmailField(required=True)
first_name = forms.CharField(max_length=200, required=True)
message = forms.CharField(widget=forms.Textarea)
Urls
url(r'^contact/$', views.email, name='contact'),
My Template
{% block contact %}
<form method="POST" action="{% url 'Index-App:contact' %}">
{% csrf_token %}
{{ form }}
<input type="submit" class="btn-success" value="Send"/>
</form>
{% endblock %}
Ich habe einen Fehler gemacht, der zweite Kontakt gewesen hätte Contact() – melb27