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 模板

将 Django Enum 约束强制到 PostgreSQL 端

Linux下安装使用virtualenv与virtualenvwrapper 򀂢

Linux下安装使用virtualenv与virtualenvwrapper 񲶕

Linux下安装使用virtualenv与virtualenvwrapper 🔈

记录对 django-rest-framework 的请求