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

Django仪表盘如何从用户邮箱拆分用户名并显示?

解决Django仪表盘个性化问候显示问题

问题分析

  1. 模板变量不匹配:view.py中context的键拼写错误(cunrrent_user),但模板中使用的是current_user,导致模板无法正确获取用户对象。
  2. 错误调用split方法:直接对request.user(用户对象)调用split,而split是字符串方法,必须先提取邮箱字符串再处理。
  3. 未提取邮箱前缀:未从邮箱地址中分离出@前的用户名部分。

修复步骤

1. 修正view.py中的拼写错误

将context中的cunrrent_user改为current_user,确保模板能正确获取变量:

@login_required(login_url='login') 
def Example_dashboard(request):
    form = MembersForm()
    current_user = request.user
  
    # 修正拼写错误:cunrrent_user -> current_user
    context = {'form': form, "current_user": current_user}
    return render(request, 'example_dashboard.html', context)

2. 提取邮箱前缀作为用户名

在view.py中,从用户邮箱中提取@符号前的部分,传递给模板:

@login_required(login_url='login') 
def Example_dashboard(request):
    form = MembersForm()
    current_user = request.user
    # 提取邮箱前缀:从email字段中拆分出@前的部分
    username_prefix = current_user.email.split('@')[0] if current_user.email else 'Guest'
  
    context = {'form': form, "username_prefix": username_prefix}
    return render(request, 'example_dashboard.html', context)

3. 修改模板显示个性化问候

在模板中使用提取后的用户名前缀:

<p>Welcome, {{ username_prefix }}!</p>
<form action='' method='POST'>
    {%csrf_token%}
    {{ form }}
</form>

额外说明

  • 如果你的Members模型是自定义用户模型,请确保已在settings.py中配置AUTH_USER_MODEL = 'your_app.Members',否则request.user可能不是Members实例,需要调整获取邮箱的方式。
  • 增加了if current_user.email else 'Guest'的判断,避免用户邮箱为空时出现索引错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 03:15:50