【发布时间】:2019-09-14 05:10:30
【问题描述】:
我正在我的投资组合网站上创建一个联系页面,当用户填写并提交时,它会自动将其作为电子邮件发送到我的个人电子邮件帐户。但是当我点击提交时,我的终端中出现“方法不允许(POST):/contact/”,浏览器中出现“HTTP ERROR 405”,并且我的帐户中没有电子邮件。
我的 HTML:
<form action="" method="POST">
{% csrf_token %}
<div class="row form-group">
<div class="col">
<input name="f-name" type="text" class="form-control" placeholder="First name" required>
</div>
<div class="col">
<input name="s-name" type="text" class="form-control" placeholder="Last name" required>
</div>
</div>
<div class="form-group">
<input name="email" type="email" class="form-control" id="email-input" aria-describedby="emailHelp" placeholder="name@mail.com" required>
<small id="emailHelp" class="form-text text-muted">I Wont Share Your Email!</small>
</div>
<div class="form-group text-center">
<textarea name="e-message" class="form-control" id="exampleFormControlTextarea1" rows="3" placeholder="your message..." required></textarea>
</div>
<button type="submit" class="btn btn-primary">Send</button>
</form>
我的意见.py:
class ContactView(TemplateView):
template_name = 'contact.html'
def send_message(self, request):
if request.method == 'POST':
message = request.POST['f-name', 's-name', 'email', 'e-message']
send_mail('Contact Form', message,['email@gmail.com'],
fail_silently=False)
return render(request, 'thanks.html')
我的项目 urls.py
from django.contrib import admin
from django.urls import path, include
from django.contrib.auth import views
from blog import views
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('blog.urls')),
path('projects/', views.ProjectView.as_view(), name='projects'),
path('blog/', views.BlogView.as_view(), name='blog'),
path('contact/', views.ContactView.as_view(), name='contact'),
path('thanks/', views.ThanksView.as_view(), name='thanks'),
我的应用程序 urls.py
from django.conf.urls import url
from blog import views
app_name = 'blog'
urlpatterns = [
url(r'^$', views.AboutView.as_view(), name='about'),
url(r'^projects/$', views.ProjectView.as_view(), name='projects'),
url(r'^blog/$', views.BlogView.as_view(), name='blog'),
url(r'^contact/$', views.ContactView.as_view(), name='contact'),
url(r'^thanks/$', views.ThanksView.as_view(), name='thanks'),
我一直在寻找类似的答案几个小时,到目前为止,任何类似的东西都没有帮助也许我应该在 Django 表单中重新构建我的表单?我不想冒险做太多改变而破坏我的网站!
【问题讨论】: