【问题标题】:Python - Django The submit button does not work when I submit a formPython - Django 提交表单时提交按钮不起作用
【发布时间】: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


【解决方案1】:

设置表单操作以查看 url 例如

 <form id="newsletterForm" class="contact-form" action="{%url ‘view_name’%}" method="post">

【讨论】:

    猜你喜欢
    • 2020-08-21
    • 1970-01-01
    • 2020-10-08
    • 2022-08-17
    • 2015-10-10
    • 2016-09-18
    • 2018-06-30
    • 2015-03-11
    相关资源
    最近更新 更多