Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.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 rest auth HTML电子邮件用于密码重置_Python_Django_Django Rest Framework_Django Rest Auth - Fatal编程技术网

Python Django rest auth HTML电子邮件用于密码重置

Python Django rest auth HTML电子邮件用于密码重置,python,django,django-rest-framework,django-rest-auth,Python,Django,Django Rest Framework,Django Rest Auth,是否可以在django rest auth中以HTML格式发送密码重置电子邮件? 默认情况下,HTML电子邮件被禁用,并从password_reset_email.HTML模板发送简单文本。我已将模板复制到项目结构模板,并可以轻松更改电子邮件的内容 但是,Django可以选择发送功能齐全的HTML电子邮件以重置密码。我不知道如何从Django rest auth视图发送它们 似乎django rest auth使用自定义序列化程序进行def password_reset或class Passwo

是否可以在django rest auth中以HTML格式发送密码重置电子邮件? 默认情况下,HTML电子邮件被禁用,并从password_reset_email.HTML模板发送简单文本。我已将模板复制到项目结构模板,并可以轻松更改电子邮件的内容

但是,Django可以选择发送功能齐全的HTML电子邮件以重置密码。我不知道如何从Django rest auth视图发送它们

似乎django rest auth使用自定义序列化程序进行def password_reset或class PasswordResetView,两者都有属性:email_template_name、html_email_template_name

如果我能从我的url.py中传递这些属性,那就太好了

from rest_auth.views import PasswordResetView, 
url(r'^api/auth/reset/$', PasswordResetView.as_view(), name='rest_password_reset'),

否则,我可能应该重写序列化程序(甚至视图)或视图

1。使用自定义的
save
方法创建自己的
PasswordResetSerializer

Base
PasswordResetSerializer
从此处复制:()

二,。连接自定义
PasswordResetSerializer
以覆盖默认值

yourproject_app/settings.py

REST_AUTH_SERIALIZERS = {
    'PASSWORD_RESET_SERIALIZER': 
        'yourproject_app.serializers.PasswordResetSerializer',
}
三,。将自定义电子邮件文本文件所在目录的路径添加到
模板

yourproject/settings.py

TEMPLATES = [
    {
        ...
        'DIRS': [os.path.join(BASE_DIR, 'yourproject/templates')],
        ...
    }
]
四,。编写自定义电子邮件(默认从Django复制)

yourproject/templates/example\u message.html
...

最简单的解决方案是:

  • 第一:
  • 在项目文件夹中创建此目录

    myProjectName/模板/注册

  • 第二:
  • 转到这个目录(在本例中,我使用的是Python 3.6)

    “C:\Python36\Lib\site packages\django\contrib\admin\templates\registration”

    将“password\u reset\u email.html”文件复制到您在第一步中创建的目录中

  • 第三:
  • 转到项目中的“setting.py”文件,通过添加模板目录告诉django在哪里可以找到“password\u reset\u email.html”文件:

    TEMPLATES = [
    {
        ...
        'DIRS': [os.path.join(BASE_DIR, 'myProjectName/templates')],
        ...
    }
    
    ]

    现在,您可以在项目目录中打开“password\u reset\u email.html”,并根据需要修改它

    yourproject/templates/example_message.html
    
    <html>
      <body>
        ...
      </body>
    </html>
    
    TEMPLATES = [
    {
        ...
        'DIRS': [os.path.join(BASE_DIR, 'myProjectName/templates')],
        ...
    }