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

在Django中仅对特定用户显示HTML Span的实现问题

Django实现特定用户显示“Approvals”标签的修复方案

原函数存在的问题

  • 类方法参数顺序错误:在Django视图类的自定义方法中,self必须作为第一个参数,原函数将request放在self前面,导致调用时参数不匹配
  • 用户判断逻辑错误:request.user是Django的User模型实例,不能直接与字符串邮箱比较,需要访问其email属性来判断

修正后的代码实现

1. 修复自定义方法

def is_approval_supported(self, request):
    # 比较用户实例的email属性与目标邮箱
    if request.user.email == 'abcd@mail.com':
        return True
    return False

2. 修正视图中变量传递的调用

在视图类的get_context_data方法中,需要传入当前请求对象request:

def get_context_data(self, **kwargs):
    context_data = super().get_context_data(**kwargs)
    # 传入request参数调用方法
    context_data['show_approval'] = self.is_approval_supported(self.request)
    return context_data

额外注意事项

原模板代码中的</a>标签没有对应的起始标签,建议检查模板结构,避免无效HTML:

{% if show_approval %}
    <span>Approvals</span>
{% endif %}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 07:50:27