Я могу успешно создать контактную форму с помощью Django (2.1).
Когда я размещаю теги формы внутри с {% csrf_token %}
внутри {% block content %}{% endblock %}
в шаблоне HTML, я не могу получить "успех"страница "огонь".
Почему это происходит, когда я использую теги jinja
?
Промежуточное ПО:
'django.middleware.csrf.CsrfViewMiddleware',
urls.py
from django.conf.urls import url, include
from django.urls import path
from . import views
# from django.contrib.auth.views import login
urlpatterns = [
url(r'^$', views.index, name='index'),
url(r'^$', views.about, name='about'),
url(r'^$', views.howitworks, name='services'),
url(r'^$', views.showroom, name='showroom'),
url(r'^privacy/', views.privacy, name='privacy'),
url(r'^terms-of-service/', views.tos, name='terms-of-service'),
url(r'^contact/', views.emailView, name='contact'),
# path('email/', views.emailView, name='email'),
path('success/', views.successView, name='success'),
]
views.py
from django.shortcuts import render, redirect
from django.http import HttpResponse, HttpResponseRedirect
from django.core.mail import send_mail, BadHeaderError
from .forms import ContactForm
def index(request):
return render(request, 'home/landing.html')
def about(request):
return render(request, 'home/landing#about.html')
def howitworks(request):
return render(request, 'home/landing#services.html')
def showroom(request):
return render(request, 'home/landing#portfolio.html')
def privacy(request):
return render(request, 'home/privacy.html')
def tos(request):
return render(request, 'home/terms-of-service.html')
# def contact(request):
# return render(request, 'home/contact.html')
# def login(request):
# return render(request, 'auth/account/login.html')
# def signup(request):
# return render(request, 'auth/account/signup.html')4
def emailView(request):
if request.method == 'GET':
form = ContactForm()
else:
form = ContactForm(request.POST)
if form.is_valid():
first_name = form.cleaned_data['first_name']
last_name = form.cleaned_data['last_name']
subject = form.cleaned_data['subject']
from_email = form.cleaned_data['from_email']
message = form.cleaned_data['message']
try:
send_mail(subject, message, from_email, ['peterdoh@gmail.com'])
except BadHeaderError:
return HttpResponse('Invalid header found.')
return redirect('success')
return render(request, "home/contact.html", {'form': form})
def successView(request):
# return HttpResponse('Success! Thank you for your message to Revs Direct.')
return render(request, "home/success.html", {})
contact.html
{% extends "home/base.html" %}
{% load staticfiles %}
{% block header %}
{% include 'home/header1.html' %}
{% endblock %}
{% block content %}
<h3 class="section-title">Contact Us</h3>
<p class="section-description">We d love to hear from you. Please fill in the form below with any queries or questions that
you may have.</p>
<div class="container wow fadeInUp">
<div class="row justify-content-center">
<div class="col-lg-3 col-md-4">
<div class="info">
<!-- <div>
<i class="fa fa-map-marker"></i>
<p>A108 Adam Street<br>New York, NY 535022</p>
</div> -->
<!-- <div>
<i class="fa fa-envelope"></i>
<p>info@revsdirect.com</p>
</div> -->
<!-- <div>
<i class="fa fa-phone"></i>
<p>HOLD</p>
</div> -->
</div>
<div class="social-links">
<h3>Social Media</h3>
<a href="#" class="facebook">
<i class="fab fa-facebook-f"></i>
</a>
<a href="#" class="instagram">
<i class="fab fa-instagram"></i>
</a>
<a href="#" class="twitter">
<i class="fab fa-twitter"></i>
</a>
<!-- <a href="#" class="google-plus"><i class="fa fa-google-plus"></i></a>
<a href="#" class="linkedin"><i class="fa fa-linkedin"></i></a> -->
</div>
</div>
<div class="col-lg-5 col-md-8">
<div class="form">
<!-- <div id="sendmessage">Your message has been sent. Thank you!</div>
<div id="errormessage"></div> -->
<form role="form" action="" method="post" class="contactForm">{% csrf_token %}
{{ form.as_p }}
<div class="form-actions">
<button type="submit">Send</button>
</div>
</form>
</div>
</div>
</div>
{% endblock %}