【发布时间】:2021-06-07 14:51:10
【问题描述】:
我正在用 Python Django 开发一个网站。 我想编写一个表单,通过电子邮件向我发送用户在表单中输入的电子邮件地址。 问题是提交按钮不起作用。 当我单击按钮提交时,我没有被重定向到新页面,也没有收到表单的内容。 你能帮我解决它吗?
我的看法
def test(request):
if request.method == 'GET':
form = newsletterForm()
else:
form = newsletterForm(request.POST)
if form.is_valid():
subject = 'New Subscriber'
from_email = 'no-reply@test.com'
message = ' Email Adress: ' + form.cleaned_data['from_email']
try:
send_mail(subject, message, from_email, ['info@test.com'])
messages.success(request, 'Thank you for contact us we will get back soon')
render(request, "Test.html")
except BadHeaderError:
return HttpResponse('Invalid header found.')
render(request, "Test.html")
return render(request, "Test.html", {'form': form})
我的 HTML
<form id="newsletterForm" class="contact-form" action="#" method="post">
<div class="input-group input-group-rounded">
{{ form.from_email|add_class:"form-control" }}
<span class="input-group-append">
<button class="btn btn-light text-color-dark" type="submit"><strong>GO!</strong></button>
</span>
</div>
</form>
我的表格
class newsletterForm(forms.Form):
from_email = forms.EmailField(label='search',
widget=forms.TextInput(attrs={'placeholder': 'Email Address'}))
设置
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'no-reply@test.com'
EMAIL_HOST_PASSWORD = ‘xxx’
EMAIL_PORT = 587
EMAIL_USE_TLS = True
DEFAULT_FROM_EMAIL = 'default from email'
【问题讨论】:
-
你甚至没有在视图的任何地方重定向用户,你为什么期望被重定向?
-
它没有帮助,因为表单的内容没有发送到我的电子邮件地址,即使我用其他东西更改 # 我也不会被重定向到另一个页面。
-
显示您的电子邮件设置(编辑密码等敏感值)您将
EMAIL_HOST_USER设置为什么?no-reply@test.com? -
我添加了设置。
标签: python html django django-forms