创建一个发送邮件的基本联系表

时间:2019-05-27 05:22:04

标签: django django-forms django-templates django-views bootstrap-studio

我有一个已经设计好的表单模板(使用bootstrap-studio)。 我只需要从中获取数据并将其作为邮件发送到我的电子邮件ID。 如果按提交后页面可以重定向到新页面,那也很好。

我已经设置好settings.py并能够发送表单的“消息”部分。

    if request.method == 'POST':
        message = request.POST['message']

        send_mail(
            'Contact Form',
            message,
            settings.EMAIL_HOST_USER,
            ['abcd@gmail.com'],
            fail_silently=False

        )
    return render(request, 'contact.html')

我需要的是能够发送带有“消息”,“名称”,“电子邮件”, 包含在其中。

我尝试写

message = request.POST['message','name','email']

没有得到预期的结果。

contact.html:

        <form method="post">
            {% csrf_token %}
            <h2 class="text-center">Contact us</h2>
            <div class="form-group"><input class="form-control" type="text" name="name" placeholder="Name"></div>
            <div class="form-group"><input class="form-control " type="email" name="email" placeholder="Email"></div>
            <div class="form-group"><textarea class="form-control" name="message" placeholder="Message" rows="14"></textarea></div>
            <div class="form-group"><button class="btn btn-primary" type="submit">send </button></div>
        </form>
    </div>

1 个答案:

答案 0 :(得分:0)

要从表单中获取数据,您必须单独进行操作。

message = request.POST["message"]
name = request.POST["name"]
email = request.POST["email"]

然后,您可以使用此数据作为参数传递给send_mail()函数。 要在提交表单后重定向到另一个页面,请使用以下逻辑:

from django.shortcuts import redirect

    if request.method == 'POST':
        message = request.POST['message']
        name = request.POST["name"]
        email = request.POST["email"]

        send_mail(
            'Contact Form',
            message,
            settings.EMAIL_HOST_USER,
            [email,],
            fail_silently=False

        )
        return redirect("/home/")
    return render(request, 'contact.html')