You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Django中获取所有类型用户(含超级用户)的邮箱地址?

获取Django所有用户邮箱地址的方法

首先,你当前的代码存在两个问题:

  • User.objects.get(id=2) 只能获取单个ID为2的用户,无法拿到所有用户
  • 属性名写错了,Django User模型的邮箱属性是小写的email,不是Email

下面是几种获取所有用户邮箱列表的正确方法:

方法1:用values_list直接提取(推荐)

这是最简洁高效的方式,直接从数据库查询中提取邮箱字段:

from django.contrib.auth.models import User

# 获取所有用户邮箱的QuerySet,flat=True将结果转为一维结构
all_emails = User.objects.values_list('email', flat=True)
# 转为Python列表(如果需要)
email_list = list(all_emails)
print(email_list)

方法2:过滤掉空邮箱

如果部分用户没有填写邮箱,想排除空值的话:

email_list = list(User.objects.exclude(email='').values_list('email', flat=True))

方法3:遍历所有用户(适合需要额外处理的场景)

如果需要对每个用户做额外逻辑处理,可以遍历所有用户对象:

from django.contrib.auth.models import User

email_list = []
for user in User.objects.all():
    # 可选:跳过空邮箱
    if user.email:
        email_list.append(user.email)
print(email_list)

注意

如果你项目中使用了自定义用户模型,需要把from django.contrib.auth.models import User替换成你自己的用户模型导入,比如:

from myapp.models import CustomUser
all_emails = CustomUser.objects.values_list('email', flat=True)

内容的提问来源于stack exchange,提问作者Anshul Gupta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 21:40:37