Я пытаюсь создать простую контактную форму в модальном окне и отправить электронную почту на консоль в начале, но она не работает. У меня все установлено.
У меня настроен бэкэнд электронной почты, так как я могу отправить письмо с консоли.
При открытии модального сайта URL сайта не меняется. Это как-то связано с этим?
Это то, что я получаю в консоли
[02/Jul/2019 22:30:22] "GET /contact/ HTTP/1.1" 200 1224
[02/Jul/2019 22:30:29] "POST / HTTP/1.1" 200 2229
views.py
def email(request):
if request.method == "POST":
form = ContactForm(request.POST)
if form.is_valid():
mail = form.cleaned_data["from_email"]
subject = form.cleaned_data["subject"]
message = form.cleaned_data["message"]
send_mail(subject, message, mail, ["example@gmail.com"], fail_silently=False)
messages.success("Done")
return redirect("homepage")
else:
form = ContactForm()
return render(request, "home_page/contact_form.html", {"form": form})
forms.py
class ContactForm(forms.Form):
from_email = forms.EmailField(required=True)
subject = forms.CharField(required=True)
message = forms.CharField(widget=forms.Textarea)
urls.py
urlpatterns = [
path('', views.home, name='homepage'),
path('contact/', views.email, name='contact')]
И HTML
{% load crispy_forms_tags %}
<h1>Leave me a message</h1>
<form method="post" action="">
{% csrf_token %}
{{ form|crispy }}
<div class="form-actions">
<button>Send</button>
</div>
</form>
Редактировать
Добавление кода, отвечающего за открытие модала:
home.html
<a href="{% url 'contact' %}" rel="modal:open"><i class="far fa-envelope fa-3x"></i></a>
Изменено действие в моей контактной форме, но это не отправка электронного письма и открытие контактной формы на новой странице
action="{% url 'contact' %}"
[03/Jul/2019 06:31:30] "GET /contact/ HTTP/1.1" 200 1233
[03/Jul/2019 06:31:37] "POST /contact/ HTTP/1.1" 200 1372