Создайте основную контактную форму для отправки почты - PullRequest
0 голосов
/ 27 мая 2019

У меня уже есть шаблон для формы, созданной с помощью bootstrap-studio. Мне просто нужно получить данные и отправить их по электронной почте на мой электронный идентификатор. Было бы также неплохо, если бы после нажатия кнопки Отправить страницу можно было перенаправить на новую.

Я уже настроил файл 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», «name», «email», включены в него.

Я пытался написать

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 голосов
/ 27 мая 2019

Для извлечения данных из формы вы должны сделать это индивидуально.

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')
...