首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Django auth: self.request.user在视图集中总是匿名的

Django auth是Django框架中用于身份验证和授权的模块。在视图集中,self.request.user总是匿名的可能是由于以下几个原因:

  1. 用户未登录:如果用户没有进行身份验证或登录,self.request.user将是匿名用户。在这种情况下,可以使用is_authenticated()方法来检查用户是否已登录。
  2. 身份验证方式不正确:如果使用的身份验证方式不正确,也可能导致self.request.user为匿名用户。在Django中,可以使用多种身份验证方式,如基于会话的身份验证、Token身份验证等。确保使用正确的身份验证方式来验证用户。
  3. 视图集未配置权限:如果视图集没有正确配置权限,也可能导致self.request.user为匿名用户。在Django中,可以使用装饰器或权限类来配置视图集的权限。确保为需要身份验证的视图集配置正确的权限。

总结起来,要解决self.request.user在视图集中总是匿名的问题,可以按照以下步骤进行操作:

  1. 确保用户已登录或进行身份验证。
  2. 检查使用的身份验证方式是否正确。
  3. 配置视图集的权限,确保需要身份验证的视图集配置了正确的权限。

对于Django auth模块的更多信息和使用方法,可以参考腾讯云的Django auth相关文档:Django auth - 腾讯云

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

DRF比Django认证和权限高在哪里

Django可以用LoginRequiredMixin和PermissionRequiredMixin给类视图添加认证和权限,DRF做了高级封装,提供了更简洁实现方式。...UserList和详情视图UserDetail,分别用到了ListAPIView和RetrieveAPIView: from django.contrib.auth.models import User...) SnippetList视图中重写perform_create()方法,意思是保存时,把request.user值赋给owner字段。...刚才错误没有了,但是报了个新错误:Snippet.owner必须是User实例,给它赋值是AnonymousUser(匿名用户),导致ValueError了。...我们请求中并没有用户信息,正常来说访问视图时候就该被拦截了。 给视图添加认证 我们需要让API更符合常规,让未认证用户不能执行视图代码。

1.5K20
  • Django_rest框架电商项目实践项目(一篇文章讲清楚电商项目)项目的创建与基本配置,所有接口代码,项目代码已给

    商品列表后台接口 序列器 view代码 url代码 实现分页(传limit offset) 实现根据字段进行排序和模糊搜索 商品分类查询 view代码 url代码 前端调用书写 分类查询基础上面...Django自带后台里面 from django.contrib import admin # Register your models here....computerapp.models import Product, Category, Manufacturer, UserProfile, DeliveryAddress, Order from django.contrib.auth.models...分类查询基础上面,需要排序 比如根据价格排序 根据生产厂商进行选择 view class ProductListByCategoryManufacturerView(generics.ListAPIView.../',views.obtain_auth_token), 前段调用 http://127.0.0.1:8000/api-token-auth/,这个将用户名密码传过去,就可以实现token登录 用户详情

    2.8K10

    Django Rest Framework

    * 封装了Response对象,代替了原有的django HttpResponse,视图将管理内容协商并设置正确渲染器响应。 * 任何APIException异常将会被捕捉,并做适当响应。...函数基础视图(@api_view()) 一种函数基础视图来装饰django普通视图,我们同样可以使用request来接受请求和response响应。...REST框架提供通用视图允许快速构建API观点紧密地映射到数据库模型,如果通用视图不适合需要API, 可以使用常规APIView类,或重用mixin和基类使用通用视图来组成自己组可重用通用视图。...通用视图可以设置一些类属性通用视图内,也可以根据特殊要写重写它内部视图方法 使用.as_views()来转换成视图函数 url(r’^/users/’, ListCreateAPIView.as_view...ViewSets 允许将一组相关逻辑视图一个类,ViewSet类是一个简单类型基于类观点,没有提供任何方法处理程序如.get()或. post(), 而代替提供方法比如.list()和create

    2.3K60

    Django实战-信息资讯-CMS后台管理-上

    Django网络应用开发5项基础核心技术包括模型(Model)设计,URL 设计与配置,View(视图编写,Template(模板)设计和Form(表单)使用。...之前项目中,都在用 django 后台集成工具 xadmin 和 admin,这两样后台管理工具很强大,基本上能满足不同开发需求。本次采用自建 cms 来实现后台管理。...① 后台权限 django用户可分为两类,一是可认证用户,也就是django.contrib.auth.models.User中注册了;另一种是匿名用户django.contrib.auth.models.AnonymousUser...,每个访问未登录用户都是该类一个实例,而匿名用户是无法认证,即 is_authenticated 方法永远返回 False,或者is_anonymous返回True,我们可以代码逻辑中实现对匿名用户进行判断...只允许 staff 身份用户访问某个视图django同样提供了一个便捷装饰器来实现这个功能: from django.contrib.admin.views.decorators import staff_member_required

    70730

    Django REST Framework-如何使用视图集(三)

    定制视图集操作视图集提供了一些通用操作,例如获取列表、创建对象、获取详情、更新对象、部分更新对象和删除对象等。如果需要定制这些操作行为,可以视图集中重写对应方法。...我们使用 self.request.user 获取当前请求用户,并将其设置为新书籍作者。...我们使用 self.request.user 获取当前请求用户,并将其用于过滤书籍列表,只返回当前用户书籍。视图集类型DRF 中提供了多种视图集类型,可以根据不同需求选择合适视图集类型。...以下是几种常见视图集类型:ModelViewSet: 提供了默认 CRUD 操作,以及一些其他常见操作(例如过滤、分页、搜索等)。...ViewSet: 不提供任何操作,需要手动子类中定义操作方法。视图集类型选择取决于 API 需求和开发人员编写习惯。

    61931

    Django-xadmin+rule对象级权限实现方式

    数据库记录导入导出(xsl, json等),并且拥有对象级权限控制(如:小A不能导出小B公司信息,更不能导入小B公司信息进行更新和新增) 1.2 现状 实现需求1:Django-admin让我们能够很方便实现一个管理后台程序...django-xadmin则在拥有admin基本功能基础上增加了更为丰富功能、界面也更加漂亮。...django工程、xadmin替换原生admin设置,请参照官方文档。...补充知识:django 扩展自带权限,使其支持对象权限 扩展django 自带权限 说明 不重写 自带权限基础上,完成支持对象权限,适用于小型项目。...欢迎提出修改意见 软件支持 jsonfield 数据库 新建3个表 from django.db import models from django.contrib.auth.models import

    95920

    Django REST Framework-常用权限类型

    Django REST Framework是一个用于构建Web API强大框架。其中一个重要特性是提供了多种权限类型来控制用户对API端点访问。...DjangoModelPermissions:基于Django模型权限控制。允许用户执行特定操作之前检查模型权限。...如果用户已经验证身份,则检查该用户是否具有执行特定操作模型实例权限。如何使用权限Django REST Framework权限通常通过将它们附加到视图类中来使用。...return Response(content)这个视图只允许已经验证身份用户访问。如果一个未经身份验证用户尝试访问这个视图,他们将会被重定向到登录页面。...put()方法中,我们使用self.request.user将当前请求用户设置为代码片段所有者。这样,如果用户成功更新代码片段,他们就会成为该代码片段新所有者。

    1.5K20

    Django-guardian实现对象级别的权限控制

    特征 Django对象全新啊 匿名用户支持 高级API 经过严密测试 Django admin整合 装饰器 安装 要求Django1.7或更高版本 pip install django-guardian...guardian匿名用户与Django匿名用户不同。Django匿名用户在数据库中没有条目,但是Guardian匿名用户有。...GUARDIAN_GET_INIT_ANONYMOUS_USER Guardian支持匿名用户对象级权限,但是我们项目中,我们使用自定义用户模型,默认功能可能会失败。...视图中使用 除了Django提供has_perm外,django-guardian还提供了一些常用方法帮助我们检查对象权限 get_perms >>> from guardian.shortcuts...django-guardian随附两个装饰器,这可能有助于简单对象权限检查,但请记住,在装饰视图被调用之前,这些装饰器会触发数据库——这意味着如果在视图中进行类似的查找,那么最可能一个(或更多,取决于查找

    3.4K30

    python教程

    状态码 总是在你视图中用数字HTTP状态码会更加容易理解,并且如果你用其他错误代码表示错误,就不太容易注意到了。...serializers.py中添加; from django.contrib.auth.models import User class UserSerializer(serializers.ModelSerializer...SnippetList视图类中添加以下方法; def perform_create(self, serializer): serializer.save(owner=self.request.user...视图集(ViewSets)和路由(Routers) REST框架包括对ViewSets简短描述,这可以让开发者把精力集中构建状态和交互API模型,而且它可以基于一般规范自动构建URL。...它保证URL规范存在你API中,让你写最少代码,允许你把注意力集中在你API提供交互和表现上而不需要特定URL配置。 这并不意味着这样做总是正确

    5.1K10

    django rest_framework Authentication

    # 简介 本文介绍django rest_framework认证方式. Token、Session、RemoteUser、jwt等认证方式。...ApiView继承DjangoView,然后调用View.as_view View中调用dispatch方法,因为ApiView实现dispatch方法,所以调用是ApiView.dispatch...ApiView.dispatch中将django.request再次封装成框架rest_framework.request 封装过程中将配置Authentication类注入到request..._authentication进行循环遍历所有注入Authentiation类中authenticate方法进行认证,认证成功则返回user和auth两个结果 # 认证方式 可以自定义认证类,只需要继承.... # session drf中session认证,是通过django SessionMiddleware和AuthenticationMiddleware中将user存储到request中,然后获取到

    37410
    领券