0

我有一个已经设计好的表单模板(使用 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']

没有得到预期的结果。

联系人.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>
4

1 回答 1

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')
于 2019-05-27T05:27:41.340 回答