Я очень новичок в Django, у меня есть домашний шаблон (home. html), который расширяет базовый шаблон (base. html) с помощью {% extends "base.html" %}
.
base.html
содержит контактную форму.
<form id="email-form" name="email-form" data-name="Email Form" method="post">
{% csrf_token %}
<div>
<label for="Name-2" class="field-label">Full name</label>
{% render_field form.name class+="text-field w-input" %}
</div>
<div>
<label for="Email-2" class="field-label">Email address</label>
{% render_field form.from_email class+="text-field _2 w-input" %}
</div>
<div>
<label for="Phone-2" class="field-label">Phone number</label>
{% render_field form.phone class+="text-field _2 w-input" %}
</div>
<div>
<label for="Timeline" class="field-label">More information</label>
<div>
{% render_field form.message class+="text-field area w-input" %}
</div>
</div>
<div class="algin-center form-actions">
<input type="submit" value="Send Message" data-wait="Please wait..." class="button full w-button">
</div>
</form>
views.py
from django.core.mail import send_mail, BadHeaderError
from django.http import HttpResponse, HttpResponseRedirect
from django.shortcuts import render, redirect
from django import forms
class ContactForm(forms.Form):
name = forms.CharField(required=True)
from_email = forms.EmailField(required=True)
phone = forms.CharField(required=True)
message = forms.CharField(widget=forms.Textarea, required=True)
def homeView(request):
if request.method == 'GET':
form = ContactForm()
else:
form = ContactForm(request.POST)
if form.is_valid():
name = form.cleaned_data['name']
phone = form.cleaned_data['phone']
from_email = form.cleaned_data['from_email']
message = form.cleaned_data['message']
try:
send_mail(name, message, from_email, ['email@email.com'])
except BadHeaderError:
return HttpResponse('Invalid header found.')
return redirect('success')
return render(request, "home.html", {'form': form})
Форма отображается нормально, однако, когда я нажимаю кнопку отправки, ничего не происходит. Я предполагаю, что это потому, что форма находится не в homeView напрямую, а через расширение, но я понятия не имею, как это исправить, возможно ли иметь форму в расширенном представлении?