djagno NotImplementedError:Django 没有为 AnonymousUser 提供数据库表示
Posted
技术标签:
【中文标题】djagno NotImplementedError:Django 没有为 AnonymousUser 提供数据库表示【英文标题】:djagno NotImplementedError: Django doesn't provide a DB representation for AnonymousUser 【发布时间】:2021-12-09 20:00:37 【问题描述】:from django.shortcuts import render, redirect
from django.db import transaction
from .models import User
from .forms import RegisterForm, LoginForm, CheckPasswordForm
from .decorators import login_required
from django.views.decorators.http import require_POST
@require_POST
def profile_delete(request):
if request.method == 'POST':
request.user.delete()
return redirect('users:login')
return render(request, 'users/delete.html')
用户视图
raise NotImplementedError("Django doesn't provide a DB representation for AnonymousUser.")
NotImplementedError: Django doesn't provide a DB representation for AnonymousUser.
我正在尝试删除 django 中的用户信息,但我收到一个类似标题的错误。我该怎么办? 我也试过设置中的@login_require方法和middle_classes,但是错误没有解决。
【问题讨论】:
【参考方案1】:@qwe qwe - 我认为 request.user 不是有效用户。如果 request.user 未登录,错误会显示匿名用户。您还应该始终添加 @login_required 装饰器。这将确保您需要始终登录才能访问此端点。
【讨论】:
以上是关于djagno NotImplementedError:Django 没有为 AnonymousUser 提供数据库表示的主要内容,如果未能解决你的问题,请参考以下文章
将 Django Enum 约束强制到 PostgreSQL 端
Linux下安装使用virtualenv与virtualenvwrapper
Linux下安装使用virtualenv与virtualenvwrapper