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

创建帖子触发AttributeError:HomeView对象无user属性求助

搞定AttributeError: 'HomeView' object has no attribute 'user'问题

为啥会出这个错?

你碰到的这个错误,核心原因很简单:你在HomeView里尝试直接用self.user获取用户信息,但TemplateView类的实例本身根本没有user这个属性。用户的身份数据是存在HTTP请求对象request里的,正确打开方式应该是request.user才行。

具体怎么修?

看你给的get方法代码,里面已经正确用了request.user,那错误大概率出在这两个地方:

  • 视图其他方法里误用了self.user
    比如如果你重写了get_context_data方法,可能不小心写成了self.user,得改成self.request.user:
def get_context_data(self, **kwargs):
    context = super().get_context_data(**kwargs)
    # 别写self.user,换成下面这个
    context['current_user'] = self.request.user
    return context
  • 模板里错误调用了视图的user属性
    要是你模板里有{{ view.user }}这种写法,直接改成{{ user }}就行(Django默认会把request.user传到模板上下文里),或者用{{ request.user }}(前提是你项目配置里启用了request上下文处理器)。

额外提个小建议

你的get方法里用了Friend.objects.get(current_user=request.user),这里有个坑:如果当前用户还没创建过Friend记录,这个get会直接抛出DoesNotExist异常导致崩溃。建议换成get_or_create,自动帮新用户创建记录:

friend, created = Friend.objects.get_or_create(current_user=request.user)
friends = friend.users.all()

这样不管是老用户还是新用户,都能正常运行啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 04:08:51