Python 通过Django向应用程序用户发送电子邮件
因此,在我的例子中,用户输入他们的姓名、电子邮件、激励信等等。当他们单击按钮时,只有状态为3的用户才应该接受来自管理员电子邮件地址的电子邮件。我按如下方式完成了此任务,但无法收到任何电子邮件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 /&
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的用户应接受来自管理员电子邮件地址的电子邮件”是什么意思?用户在哪里接受任何东西?解释代码中提交和使用的变量。