【问题标题】:Django cannot get Django user model to work with send_mailDjango 无法让 Django 用户模型与 send_mail 一起使用
【发布时间】:2019-09-20 16:09:08
【问题描述】:

视图中的这一行中断:

email = User.objects.filter(user=request.user).values_list('email', flat=True)
send_mail('subject', 'message','info@site.com', [email[0]])

这是错误:

During handling of the above exception (Cannot resolve keyword 'user' into field. Choices are: email, first_name, last_name, username), another exception occurred:

这曾经可以工作,但现在已经坏了,不知道为什么。用户已创建。这是基本的 Django 模型。

【问题讨论】:

  • 可以直接从 request.user 对象获取 email 值:request.user.email

标签: django django-users


【解决方案1】:

导致代码中出现错误的原因是 User 上没有 user 字段,因此在尝试过滤该字段时,Django 会抛出异常。

要修复该行,您需要通过 request 对象获取用户的 id 并对其进行过滤

email = User.objects.filter(id=request.user.id).values_list('email', flat=True)

但是,这是不必要的,因为它只会返回一个包含与 request 相同的用户对象的查询集。您应该直接通过请求获取电子邮件字段,而不是执行额外的查询。

send_mail('subject', 'message','info@site.com', [request.user.email])

【讨论】:

    猜你喜欢
    • 2015-05-12
    • 1970-01-01
    • 2015-08-10
    • 2013-04-27
    • 2015-11-12
    • 1970-01-01
    • 2016-11-25
    • 2021-06-09
    • 2014-05-15
    相关资源
    最近更新 更多