首页 > 解决方案 > 将 html 表单发送到 Django 项目中的电子邮件地址的最佳方式?

问题描述

我在几乎所有网站上都看到了联系表格,它们看起来很容易。阅读如何做到这一点似乎很复杂,特别是因为大多数解决方案都使用 php 和服务器。我真的不了解 php,而且我的项目中已经有四种语言,而且它变得不堪重负。我想要一些简单的东西;填写详细信息,发送到电子邮件,然后完成。

填写姓名:John Doe
填写出生日期:6/11/2018
[提交](发送至 example@example.com)

标签: javascriptpythonhtmldjangoforms

解决方案


这是如何实现的基本概述。

使用包含详细信息的表单:

from django import forms
class ContactForm(forms.Form):
    name = ...
    birht_date = ...

在视图中使用此表单,可能使用FormView

from django.conf import settings
from django.core.mail import send_mail
from django.views.generic.edit import FormView

class ContactView(FormView):
    form_class = ContactForm
    success_url = '/thanks/'

    def form_valid(self, form):
        # here you send the email
        send_email(
            sub='New contact: {}'.format(form.cleaned_data['name']),
            msg='This new contact was born  {}'.format(form.cleaned_data['birth_date']),
            from=settings.SERVER_EMAIL,
            to='example@example.com')

        return super().form_valid(form)

也许这会让您找到解决问题的正确途径。


推荐阅读