python - 注册用户时发送电子邮件出错
问题描述
我正在尝试在用户注册时发送电子邮件,但它只是重定向到预期的页面,但没有发送电子邮件。
这是我的代码
def register_view(request): # Creates a New Account & login New users
if request.user.is_authenticated:
return redirect("/")
else:
title = "Register"
form = UserRegistrationForm(request.POST or None)
print(form.is_valid())
if form.is_valid():
user = form.save(commit=False)
password = form.cleaned_data.get("password1")
user.set_password(password)
user.save()
# new_user = authenticate(email=user.email, password=password)
login(request, user)
return redirect("/books")
subject = "Greetings"
msg = "Congratulations Yor Account is created Successfully. Do not share your login credentials with anyone else"
to = "Ak4695755@gmail.com"
res = send_mail(subject, msg, settings.EMAIL_HOST_USER, [to])
context = {"title": title, "form": form}
return render(request, "accounts/signup.html", context)
解决方案
由于您在发送消息之前返回重定向,因此if form.is_valid()
执行其余语句:
if form.is_valid():
user = form.save(commit=False)
password = form.cleaned_data.get("password1")
user.set_password(password)
user.save()
# new_user = authenticate(email=user.email, password=password)
login(request, user)
subject = "Greetings"
msg = "Congratulations Yor Account is created Successfully. Do not share your login credentials with anyone else"
to = "Ak4695755@gmail.com"
res = send_mail(subject, msg, settings.EMAIL_HOST_USER, [to])
return redirect("/books")
...
推荐阅读
- python - Odoo 网站表单提交附件文件:AttributeError: 'str' object has no attribute 'read'
- javascript - 仅将 .txt 文件添加到静态网页 html 和 java 脚本
- data-structures - Angular - 将 FormBuilder 值传递给 Array 会导致空字符串值
- python - 在数据框上应用 GroupWise 'Softmax' 并更新新列
- c - C / bash:在另一个进程死亡时发出信号
- javascript - 你能在 Ionic 页面导航上创建容器转换(共享元素转换)吗?
- php - 如何使用 php 从 foreach 循环中检索 json_encode 数据
- python - 在python中的等号之前打印添加一个额外的加号
- python - 从文件夹中保存的许多其他文件中创建一个唯一文件
- python - 如何根据数据框中的小时数在训练和测试中拆分数据框