Django如何获取模型字段并发送电子邮件?

时间:2018-08-06 23:28:41

标签: django django-forms django-views

我是新手,只是看到django发送邮件的文档。我希望在看到驱动程序的详细信息后向驱动程序发送电子邮件,如果他们符合条件,我希望他们使用他们在注册到我的应用程序时提交的电子邮件地址发送电子邮件。请告诉我如何发送电子邮件。我已经设置了settings.py电子邮件主机用户的所有需要​​,以发送电子邮件在其他应用程序上的工作。但无法在此应用上运行。我如何获取驾驶员电子邮件并从我们公司的员工发送电子邮件。

观看次数

    def rentacar_carapp_sendmail(request):
        if request.POST:
            try:
                args['driver'] = driver = Driver.objects.get(id=request.POST.get('driver_id'))
                subject = "Please Register Your Car"
                from_email = settings.EMAIL_HOST_USER
                to_email = carapp.get('car_app_driver_id.driver_email')
                join_message = """thankyou  we will contact you later """
                send_mail(subject=subject, from_email=from_email, recipient_list=[to_email], message=join_message,
                        fail_silently=False)

                driver.save()
            except:
                pass
            return HttpResponseRedirect('/mega-admin/rentacar/driver-manager/')

模型

class Driver(models.Model):
    class Meta():
        db_table = "driver"
        verbose_name = "Driver"
        verbose_name_plural = "Drivers"
        ordering = ['driver_firstname', 'driver_lastname']

    driver_firstname = models.CharField(
        max_length=64,
        blank=False,
        null=False
    )
    driver_lastname = models.CharField(
        max_length=64,
        blank=False,
        null=False
    )
    driver_email = models.EmailField(
        blank=False
    )

my employe views

1 个答案:

答案 0 :(得分:0)

因此,在您的 forms.py 中,您可以使用任何形式来收集驱动程序信息(此示例为假设形式):

from django import forms

class YourFormName(forms.Form):

    driver_firstname = forms.CharField(required=True)
    driver_lastname = forms.CharField(required=True)
    driver_email = forms.CharField(required=True)

等等等

然后,在您的 views.py:

from django.core.mail import send_mail
from django.http import HttpResponse, HttpResponseRedirect
from django.shortcuts import render, redirect
from yourapp.forms import ContactForm

def email(request):
    if request.method == 'POST':
        form = YourFormName()
    else:
        form = YourFormName(request.POST)
        if form.is_valid():
            firstname = form.cleaned_data['driver_firstname']
            lastname = form.cleaned_data['driver_lastname']
            try:
                send_mail(firstname, lastname)
            return redirect('your_redirect_url')
    return render(request, {'form': form})

这应该有助于您获取电子邮件的适当数据。