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

Django查询Moderator模型报Cannot resolve keyword 'approve_moderator'错误求助

问题原因

approve_moderator 字段是定义在CustomUser用户模型中的属性,你在查询Moderator模型时直接将该字段作为过滤条件,而Moderator模型本身仅包含id、user、user_id三个字段,不存在该字段,因此触发字段不存在的报错。

解决方案

推荐使用更简洁高效的方案1:

方案1:直接通过当前登录用户对象判断

request.user本身就是已登录的CustomUser实例,无需额外查询数据库,直接读取字段值即可。
将afterlogin_view中的对应代码替换为:

elif is_moderator(request.user):
    if request.user.approve_moderator:
        return redirect('moderator-dashboard')
    else:
        return redirect('moderator-wait-approval')

方案2:跨关联查询Moderator模型

如果确实需要通过Moderator模型完成校验,可以使用Django的跨关联查询语法,用双下划线__关联到关联用户的字段:

elif is_moderator(request.user):
    # 用exists()判断查询是否存在结果,比直接判断queryset性能更高
    approval_status = Moderator.objects.filter(user_id=request.user.id, user__approve_moderator=True).exists()
    if approval_status:
        return redirect('moderator-dashboard')
    else:
        return redirect('moderator-wait-approval')

补充注意点

你当前的注册逻辑中设置了user.is_moderator = False,后续管理员审核通过用户的moderator申请时,记得同步将该字段修改为True,避免其他依赖该字段的判断逻辑出错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 21:06:03