栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Django password_reset是否支持html电子邮件模板?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Django password_reset是否支持html电子邮件模板?

这是您可以执行的替代方法:

urls.py

url(r'^user/password/reset/$',     'YOUR_APP.views.password_reset',     {'post_reset_redirect' : '/#/login?resetemail=true'},    name="password_reset"),

views.py

from django.contrib.auth.views import password_reset as django_password_resetfrom YOUR_APP.forms import CustomPasswordResetFormdef password_reset(*args, **kwargs):    """        Overriding the Email Password Resert Forms Save to be able to send HTML email    """    kwargs['password_reset_form'] = CustomPasswordResetForm    return django_password_reset(*args, **kwargs)

表格

from django.contrib.auth.forms import PasswordResetFormfrom django.contrib.auth.tokens import default_token_generatorclass CustomPasswordResetForm(PasswordResetForm):    """        Overriding the Email Password Resert Forms Save to be able to send HTML email    """    def save(self, domain_override=None, email_template_name='registration/password_reset_email.html',  use_https=False, token_generator=default_token_generator, request=None, email_subject_name='registration/password_reset_subject.txt', **kwargs):        from django.core.mail import EmailMultiAlternatives        from django.utils.html import strip_tags        from django.template.loader import render_to_string        from django.contrib.sites.models import get_current_site        from django.utils.http import int_to_base36        for user in self.users_cache: if not domain_override:     current_site = get_current_site(request)     site_name = current_site.name     domain = current_site.domain else:      site_name = domain = domain_override c = {     'email': user.email,     'domain': domain,     'site_name': site_name,     'uid': int_to_base36(user.id),     'user': user,     'token': token_generator.make_token(user),     'protocol': use_https and 'https' or 'http', } render = render_to_string(email_template_name, c) render_subject = render_to_string(email_subject_name, c) msg = EmailMultiAlternatives(render_subject, strip_tags(render), None, [user.email]) msg.attach_alternative(render, "text/html") msg.send()


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/646826.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号