当默认电子邮件被覆盖时,Djoser 不发送电子邮件

2023-12-25

我有一个使用 Djoser 进行身份验证的 DRF 项目。该计划是覆盖 Djoser 的默认激活电子邮件并发送 HTML 模板电子邮件。这是我所拥有的:

# settings.py

DJOSER = {
    "SEND_ACTIVATION_EMAIL": True,
    "ACTIVATION_URL": "activate/{uid}/{token}",
    "EMAIL": {"activation": "base.emails.ActivationEmail"},
}
# base/emails

from django.contrib.auth.tokens import default_token_generator
from djoser import email, utils
from djoser.conf import settings


class ActivationEmail(email.ActivationEmail):
    template_name = "emails/activation.html"

    def get_context_data(self):
        # ActivationEmail can be deleted
        context = super().get_context_data()

        user = context.get("user")
        context["first_name"] = user.first_name
        context["uid"] = utils.encode_uid(user.pk)
        context["token"] = default_token_generator.make_token(user)
        context["url"] = settings.ACTIVATION_URL.format(**context)
        return context

# templates/emails/activation.html

{% extends "emails/base.html" %}

{% load static %}

{% block subject %}Account Activation on Dummy{% endblock %}

{% block heading %}
    Account Activation
{% endblock %}

{% block content %}
    You're receiving this email because you need to finish activation process.
    Please click on the button below to activate your account:

    <br><br><br>
    <a
        href="{{ url }}"
        target="_blank"
        style="
            text-decoration: none;
            font-family: lato, 'helvetica neue', helvetica, arial, sans-serif;
            font-size: 20px;
            color: #fff;
            background-color: #0b913a;
            padding: 10px 25px;
            border-radius: 5px;
        "
        >Activate</a
    >
    <br><br><br>

    Best Regards,<br>
    The DUMMY Team

    <br><br>
    <p
        style="
            margin: 0;
            -webkit-text-size-adjust: none;
            -ms-text-size-adjust: none;
            mso-line-height-rule: exactly;
            font-size: 14px;
            font-family: lato, 'helvetica neue', helvetica, arial, sans-serif;
            line-height: 21px;
            color: #666666;
        "
    >
        If you did not make this request, reply to this email or write to [email protected] /cdn-cgi/l/email-protection so we can 
        look into a possible attempt to impersonate you.
    </p>
{% endblock %}

一切似乎都正确,但电子邮件未发送。我检查收件箱,但什么也没有看到。但是当我删除指向自定义电子邮件的电子邮件设置时,它会发送默认的 Djoser 激活电子邮件。怎么了?


我只是将其与我的项目中使用 Djoser 的自定义激活电子邮件进行了比较,您的配置看起来非常相似。

In ActivationEmail有一个send方法。您可能想要覆盖它并添加一些日志。也许这会有所帮助。

    def send(self, to, *args, **kwargs):
        logger.info(f"Sending activation mail to {to}")
        try:
            super().send(to, *args, **kwargs)
        except:
            logger.exception(f"Couldn't send mail to {to}")
            raise
        logger.info(f"Activation mail sent successfully to {to}")

无论如何,写一个测试就可以了。在您的测试中,您可以检查电子邮件是否已使用发送

self.assertEqual(len(mail.outbox), 1)

where mail来自。

from django.core import mail

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当默认电子邮件被覆盖时,Djoser 不发送电子邮件 的相关文章

  • 在 django 视图中执行阻塞请求

    在我的 django 应用程序的一个视图中 我需要执行相对较长的网络 IO 操作 问题是其他请求必须等待该请求完成 即使它们与该请求无关 我做了一些研究并偶然发现了 Celery 但据我了解 它用于执行独立于请求的后台任务 所以我不能使用任
  • Python/Django:我应该使用哪个authorize.net 库?

    我需要使用 Authorize net 集成来进行订阅付款 可能使用 CIM 要求很简单 每月定期付款 有几个不同的价格点 客户信用卡信息将存储在authorize net 中 周围有很多库和代码片段 我正在寻找关于哪些最有效的建议 Sat
  • Django 数据库迁移与 postgres 失败

    我对模型做了一些更改 然后运行了 python 管理 py makemigrations python 管理 py 迁移 我得到了这个回溯 Operations to perform Synchronize unmigrated apps
  • Django + 后台任务如何初始化

    我有一个基本的 django 项目 用作 Condor 计算集群的前端接口来生成模拟 用户可以从 django 应用程序开始模拟 在 Condor 中 与仿真相关的元数据和仿真状态保存在数据库中 我需要添加一个新功能 某些 模拟完成时发出通
  • 保护基于prototype.js的XHR请求免受CSRF攻击

    Django 已经更新到 1 3 事实上从 1 2 5 开始 它就扩展了该方案 将跨站请求伪造保护令牌传递给 XMLHttpRequests Django 人员提供了帮助jQuery 的一个例子 http docs djangoprojec
  • 如何将当前登录的用户指定为模型字段的默认值?

    我想做这样的事情 class Task models Model created by models ForeignKey User default LoggedInUser blank True null True related nam
  • Django 无法覆盖表单字段小部件

    我需要在表单中生成基于列的复选框 myapp templates forms widgets custom html div class row for group options index in widget optgroups for
  • 查询中的自定义属性

    鉴于下面的简化示例 我将如何访问查询集中的自定义 current status 属性 有可能吗 目前 我想列出所有当前事件并显示当前状态 我可以让属性显示在模板中 但我无法通过它来排序查询集 或者 我是否需要在 选择 中创建一个带有某种嵌套
  • 当SESSION_COOKIE_SECURE = True时如何在HTTP中获取一些用户身份信息

    以下是我正在开发的网站的简短描述 公共页面可以通过 HTTP 或 HTTPS 访问 其他一些页面 认证页面 账户详情页面等 需要通过HTTPS访问 Apache2 负责进行相关的 HTTP 到 HTTPS 链接重定向 我使用标准 Djang
  • Django 共享库/类

    我是 django 新手 正在寻找放置我的共享库的建议 我计划创建我想要在项目中的所有应用程序中使用的类 放置它们的最佳位置在哪里 例如抽象模型 regards 我们通常这样设置我们的项目 site init py manage py se
  • 我应该在这里使用 HttpResponseRedirect 吗?

    我正在使用 Django 教程进行 Tango 并且我已经成功完成了教程 但是我注意到官方 Django 民意调查教程 https docs djangoproject com en 2 1 intro tutorial04 write a
  • QuerySet,对象没有属性id - Django

    我试图在 Django 中获取某个对象的 id 但不断收到以下错误 异常值 QuerySet 对象没有属性 ID 我在views py中的函数 csrf exempt def check question answered request
  • 修改不同Django用户的会话数据

    这可能不可能 但是当某些情况发生时 我想修改某些登录用户的会话数据 标记一些额外的逻辑需要在下次加载页面时运行 有没有办法通过用户 ID 访问用户的会话 tldr Query Session模型 然后通过修改匹配会话SessionStore
  • Daphne Django 文件上传大小限制

    我使用 Daphne 进行套接字和 http 连接 我正在运行 4 个工作容器 并且现在在 docker 容器中本地运行所有内容 如果我尝试上传 400MB 的文件 我的 daphne 服务器会失败 它适用于最大 15MB 的小文件 我的
  • 如何在仍然使用 unique = True 的同时允许 ModelForm 中的空字段?

    目前在models py I have class ModelName models Model rowname models CharField max length 100 blank True unique True 就确保相同的值不
  • 在 Django(Python) 中向用户提供 Excel(xlsx) 文件下载

    我正在尝试使用 Django 创建和提供 Excel 文件 我有一个 jar 文件 它获取参数并根据参数生成 excel 文件 并且它可以正常工作 但是 当我尝试获取生成的文件并将其提供给用户下载时 文件损坏了 它的大小为 0kb 这是我用
  • IIS 和 ISAPI-WSGI = 非常慢

    我已经使用 IIS 在 IIS 上加载了 2 个 Django 应用程序isapi wsgi http code google com p isapi wsgi 这些都是服务器设置 Windows Server 2003 IIS6 和 SQ
  • 具有 auto_now_add 的 Django DateTimeField 要求默认值

    我的模型中有这个字段created at models DateTimeField auto now add True 当我尝试进行迁移时出现错误 You are trying to add the field created at wit
  • 如何删除django中级联的一对一相关模型?

    背景 我在 Django 1 8 5 中定义了以下模型 class PublishInfo models Model pass class Book models Model info models OneToOneField Publis
  • Django:模拟模型上的字段

    如何将模拟对象分配给该模型上的用户字段 无论如何都要绕过 SomeModel user 必须是 User 实例 检查吗 class SomeModel models Model user models ForeignKey User 我不会

随机推荐

  • 多边形相交面积的算法[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我有两个简单的多边形 用顶点列表定义 我需要计算它们相交的面积 我需要一个算法来做到这一点 判断两个多边形是否相交的算法 假设 多边形是凸多
  • 如何在Azure发布管道任务中动态向docker-compose.yml提供docker镜像标签?

    I have docker compose yml文件存在于存储库中 我在其中一项服务中添加了 image 属性来提取 docker 映像 我还没有对 docker 镜像和 docker 标签进行硬编码 并计划在运行时将这些参数传递给doc
  • 从 bootstrap-table 中动态添加的元素获取元素值

    我有一个引导表 并使用 JQuery 通过数据库填充 填充数据 我动态添加了列 最后一列 元素类型 输入类型 文本 我的问题是 如何获取在动态添加的输入类型 文本 上输入的数据 我的 Bootstrap 表参考 链接在这里 http www
  • 在 IntentService 中获取部分唤醒锁

    我的 IntentService 从两个地方被触发 要么是由警报 要么是由活动 并且由于持续时间与它需要从网络获取的数据量有关 根据我的理解 我需要保持部分唤醒锁 这是我的实现 Override protected void onHandl
  • 在角度应用程序中导航其他页面时,IE 图标消失

    我发现角度应用程序存在问题 我有一个位置提供程序设置来使用 html5Mode true locationProvider html5Mode true 我注意到在页面之间导航时图标消失了 我正在使用 IE11 边缘文档模式 有人也遇到过这
  • 如果被Spring包装成代理,如何知道原始类名?

    我正在尝试通过以下方式获取一些课程名称getClass getSimpleName under Spring它返回类似的东西 MyClass EnhancerBySpringCGLIB SOMEHEX 这可能是因为Spring将类包装到代理
  • extern C 的未定义引用

    我正在尝试使用 Netbeans g 编译一个程序 其中包括 Aquila 一个开源库 https github com zsiciarz aquila 我跟着安装说明 http aquila dsp org download 但是当尝试编
  • 使用默认参数取消引用函数 - C++14 与 C++11

    以下代码无法使用带有选项的 g 版本 5 4 0 进行编译 std c 1y void f int 0 int main f ok f 2 ok f ok c 11 error with c 14 too few arguments to
  • 有没有办法在iPad上查看localStorage的内容?

    在 设置 Safari 中 有一个 数据库 条目 可让我查看在 iPad 上创建的数据库 不是它们的内容 而是它们的大小和来源 但是 我看不到任何方法来查看 localStorage 中的内容 我正在使用控制台访问 Safari 中的 lo
  • keras图像预处理不平衡数据

    All 我正在尝试使用 Keras 对两个类进行图像分类 对于一个类 我的图像数量非常有限 比如 500 至于另一类 我的图像数量几乎是无限的 那么如果我想使用keras图像预处理 该怎么做呢 理想情况下 我需要这样的东西 对于第一类 我提
  • 为什么我的颜色条中有线条?

    Edit 由于这似乎是一个受欢迎的帖子 因此这里的解决方案似乎对我来说效果很好 谢谢 gazzar 和 mfra cbar solids set rasterized True cbar solids set edgecolor face
  • 在 ~/.gitconfig 中放入什么来暗示 --show-signature 对于每个支持它的 git 子命令?

    我刚刚搜索过git config 1 https git scm com docs git config git log 1 https git scm com docs git log and git show 1 https git s
  • 具有多态模型的嵌套形式

    我正在制作一个具有以下属性的应用程序 并且正在创建一个单一表单 以便能够保存目标 目标的任务 目标的里程碑和里程碑的任务 app models goal rb has many tasks as gt achievement has man
  • 如何防止 coclass 实现在 ATL 类型库中公开

    我正在构建一个带有类工厂类型的 ATL 类型库 有点像这样 object uuid interface INumber IDispatch propget id 0 HRESULT Value out retval LONG pVal ob
  • 正则表达式仅匹配一个句子

    PHP中有没有一种正则表达式可以只匹配一个句子 例如以大写字母开头并以大写字母结尾的句子 or preg match regex here g string matches 有时会使用缩写 因此如果后面跟有 2 个字符或更少的单词 则不得结
  • Python Django getattr():属性名称必须是字符串

    我正在使用 python Django 并收到以下错误 getattr attribute name must be string location val getattr obj field if field in headers if
  • 如何阻止 FullRowSelect 同时选择列标题

    我查看了有关 DataGridView SelectionMode 的其他帖子 但没有发现任何人有同样的问题 仅发生在 NET 4 7 2 当我选择一行时 我单击的列的标题也会被选中 如下所示 将以下两行代码添加到您的构造函数中 第一行也可
  • Vuejs 点击复选框事件?

    我在复选框上有一个 v 模型 其值是从循环分配的 我希望单击事件调用一个函数 我需要在其中访问已选中的数据 当单击被触发时 如果我记录状态 它不会打印复选框的当前单击数据 它打印先前单击的复选框数据 是否必须在函数中传递事件并访问数据 di
  • 如何使用adb命令打开和关闭屏幕? [复制]

    这个问题在这里已经有答案了 我正在使用 KEYCODE POWER 来打开和关闭已 root 的手机 以下命令用于打开和关闭屏幕两种情况 adb shell input keyevent KEYCODE POWER 但是 我想在不同的情况下
  • 当默认电子邮件被覆盖时,Djoser 不发送电子邮件

    我有一个使用 Djoser 进行身份验证的 DRF 项目 该计划是覆盖 Djoser 的默认激活电子邮件并发送 HTML 模板电子邮件 这是我所拥有的 settings py DJOSER SEND ACTIVATION EMAIL Tru