MyDjango应用程序当前已设置为使用本机注册包来处理用户身份验证和管理。
我创建了一些文件myApp/templates/registration,用于发送密码重置令牌.
myApp/templates/registration
它工作正常。除了密码重设电子邮件外,它是一个丑陋的纯文字怪物。我想使其与My应用程序发送的所有其他电子邮件的外观和风格相匹配。IE:我希望它是HTML,并包含图像,样式和链接。我怎么做?
我按照这里的详细说明进行操作。但是,该代码中有一个错误,我不知道该如何处理:'CustomPasswordResetForm' object has no attribute 'users_cache'
'CustomPasswordResetForm' object has no attribute 'users_cache'
有人可以向我展示一个详细的工作示例,以实现此目标吗?我希望它没有那么难。
由于发现该问题的其余答案已过期,因此添加了针对Django 2.0版的发现。
在2.0中,将URL添加到urls.py文件的正确方法是使用path():
from django.urls import path from django.contrib.auth import views as auth_views path('accounts/password_reset/', auth_views.PasswordResetView.as_view( html_email_template_name='registration/password_reset_html_email.html' )),
该.as_view()函数是下一个要突出显示的代码段。Django 2.0将身份验证视图实现为类。您可以在身份验证视图文档中阅读有关此内容的更多信息。
.as_view()
然后,您可以使用.as_view()将类“转换”为视图,并且可以将源代码中定义的任何类属性作为命名参数传递。
.as_view()
传入html_email_template_name(默认为None)会自动发送html电子邮件。
您可以通过以下python路径访问PasswordResetView的源代码:django.contrib.auth.views
在这里,您可以看到可以传递到PasswordResetView和其他身份验证视图中的其他类属性。这对于将extra_context传递到django模板中也是非常有用的。