Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 通过Django向应用程序用户发送电子邮件_Python_Django_Email - Fatal编程技术网

Python 通过Django向应用程序用户发送电子邮件

Python 通过Django向应用程序用户发送电子邮件,python,django,email,Python,Django,Email,因此,在我的例子中,用户输入他们的姓名、电子邮件、激励信等等。当他们单击按钮时,只有状态为3的用户才应该接受来自管理员电子邮件地址的电子邮件。我按如下方式完成了此任务,但无法收到任何电子邮件 index.html: <form action="{% url 'index' %}" method="POST"> {% csrf_token %} <input type="text" name="name" required minlength="3"><br /&

因此,在我的例子中,用户输入他们的姓名、电子邮件、激励信等等。当他们单击按钮时,只有状态为3的用户才应该接受来自管理员电子邮件地址的电子邮件。我按如下方式完成了此任务,但无法收到任何电子邮件

index.html

<form action="{% url 'index' %}" method="POST">
{% csrf_token %}
  <input type="text" name="name" required minlength="3"><br />
  <input type="email" name="email" required minlength="10"><br />
  <textarea rows="5" name="motivation_letter" required></textarea><br />
  <input type="submit" value="Send" class="apply-button">
</form>
views.py

class Applicant(models.Model):
    name = models.CharField(max_length=20)
    birth_date = models.DateField(blank=False)
    email = models.EmailField(max_length=40)
    motivation_letter = models.TextField(max_length=200)
    status = models.ForeignKey(ApplicantStatus, on_delete=models.CASCADE, default=3)

    def __str__(self):
        return self.name
def email(request):
    if request.method == 'POST':
        subject = 'Welcome!'
        message = 'We'll back to you.'
        email_from = settings.EMAIL_HOST_USER
        recipient_list = request.POST['sender_email']
        send_mail(subject, message, email_from, recipient_list)
    return redirect('index.html')
urlpatterns = [
    path('', views.index, name='index'),
    path('', views.email, name='email'),
]
url.py

class Applicant(models.Model):
    name = models.CharField(max_length=20)
    birth_date = models.DateField(blank=False)
    email = models.EmailField(max_length=40)
    motivation_letter = models.TextField(max_length=200)
    status = models.ForeignKey(ApplicantStatus, on_delete=models.CASCADE, default=3)

    def __str__(self):
        return self.name
def email(request):
    if request.method == 'POST':
        subject = 'Welcome!'
        message = 'We'll back to you.'
        email_from = settings.EMAIL_HOST_USER
        recipient_list = request.POST['sender_email']
        send_mail(subject, message, email_from, recipient_list)
    return redirect('index.html')
urlpatterns = [
    path('', views.index, name='index'),
    path('', views.email, name='email'),
]

不能有两条路径相同,但指向不同的视图。Django将只选择它匹配的第一个,因此,由于您的url只是“/”它将成为索引视图。另外,在您更改路径后,您仍然将表单提交到“索引”url(
操作={%url'索引'%}
),因此它将永远不会启动
电子邮件
视图。@dirkgroten那么我如何为相同的
索引.html
使用
电子邮件
功能?您似乎不了解url是如何工作的。您使用
索引视图(和url/)呈现index.html,但您希望将表单提交到不同的url,以便通过
电子邮件
视图进行处理。@dirkgroten好的,我已经解决了这个问题。按
状态筛选申请者如何?我不明白这部分问题。“仅状态为3的用户应接受来自管理员电子邮件地址的电子邮件”是什么意思?用户在哪里接受任何东西?解释代码中提交和使用的变量。