首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >django rest JSONWebTokenAPIView序列化程序-类对象没有属性' object‘

我将JSONWebTokenAPIView从rest_framework_jwt扩展到我的自定义视图:

代码语言:javascript
运行
AI代码解释
复制
class UserLogin(JSONWebTokenAPIView):

     serializer_class = serializers.AdabaziUserLoginJWT

下面是我的自定义序列化程序类:

代码语言:javascript
运行
AI代码解释
复制
class AdabaziUserLoginJWT(serializers.Serializer):
    username = serializers.CharField()
    password = serializers.CharField(style = {'input-type':'password'})
    status = serializers.SerializerMethodField(method_name='show_status')
    #token = serializers.CharField(read_only=True)

    class Meta():
        model = Adabazi_user
        fields = ('status')

    def show_status(self,obj):
        return obj.status

    def validate(self,attrs):

        credentials={
        'username' : attrs.get('username'),
        'password' : attrs.get('password')
        }

        user = authenticate(**credentials)
        if user :
            if user.is_active:
                ada_user = Adabazi_user.objects.get(user=user)
                if ada_user.status ==1:
                    ada_user.status = 2 #user is logged in right now
                    ada_user.updated_at = timezone.now()
                    user.last_login = timezone.now()
                    payload = jwt_payload_handler(user)
                    token = jwt_encode_handler(payload)
                    return {
                            'token':token,
                            'user':user,
                            'adabazi_user' : ada_user}
                else:
                    raise serializers.ValidationError('User is already logged in.')
            else:
                raise serializers.ValidationError('Account is deactivated.')
        else:
            raise serializers.ValidationError('User credentials failed.')

    def create(self,validated_data):
        user = validated_data['user']
        adabazi_user = validated_data['adabazi_user']
        user.save()
        ada_user.save()
        return ada_user

但是,当我想要将这个url连接到我的视图的POST usernamepasswordlocalhost/api/user/login/时,出现了以下错误:

在这一行代码中,post方法使JSONWebTokenAPIView产生错误user = serializer.object.get('user') or request.user

代码语言:javascript
运行
AI代码解释
复制
Exception Value: 'AdabaziUserLoginJWT' object has no attribute 'object'

如何访问序列化程序实例对象属性?序列化程序有对象属性吗?

EN

回答 1

Stack Overflow用户

发布于 2019-09-10 04:42:33

最近我遇到了同样的错误,问题似乎是rest_framework_jwt库和rest_framework本身的集成: rest_framework_jwt似乎没有用最新版本的rest_framework进行更新,而rest_ while的序列化程序中的代码却发生了变化(参见这里)。

在新版本的rest_framework中,没有像serializer.object.get这样的语法,因为:

在此之前,序列化器使用了两步创建对象,如下所示: 验证数据将创建一个对象实例。这个实例将以serializer.object的形式>可用。然后调用serializer.save()将对象实例保存到数据库中。 我们现在使用单步创建对象,如下所示: 验证数据使清理后的数据以serializer.validated_data的形式可用。然后调用serializer.save()保存并返回新的对象实例。

因此,为了使用这个类,您必须使用rest_framework的新API更新它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54645096

复制
相关文章
DRF JWT认证(二)
签发:一般我们登录成功后签发一个token串,token串分为三段,头部,载荷,签名
HammerZe
2022/05/09
1.1K0
DRF JWT认证(二)
Django Rest Framework 序列化(上)
多对多关系的时候,django 会自动生成第三张表维系表关系,字段分别是 userinfo 和 role 的 id,其中 api_userinfo_roles 为多对多关系生成的表。
小团子
2019/07/18
7760
Django Rest Framework 序列化(上)
Django rest framework(6)----序列化
序列化 1.继承Serializer 基本使用  (1)models.py from django.db import models class UserInfo(models.Model): USER_TYPE = ( (1,'普通用户'), (2,'VIP'), (3,'SVIP') ) user_type = models.IntegerField(choices=USER_TYPE) username = mode
zhang_derek
2018/04/11
9080
Django rest framework(6)----序列化
Django Rest Framework 序列化(中)
Django Rest Framework 序列化(上) 一、进一步使用 Serializer ① 路由 ② 视图 ③ 使用 serializer # choices 字段显示 user_type
小团子
2019/07/18
1.1K0
Django Rest Framework 序列化(中)
Django Rest Framework 序列化(下)
ModelSerializer 与 Serializer 区别在于:ModelSerializer 支持了 Serializer 中所有的操作,并且通过自动生成所有数据字段与序列化类的一一对应关系。而不用手动添加。即 Serializer 是 ModelSerializer 的父类,所以 ModelSerializer 才会支持 Serializer 的所有操作。
小团子
2019/07/18
8000
Django Rest Framework 序列化(下)
Django REST框架 | 封装 Respose 类
可以发现在给客户端返回数据都有固定的格式,比如 json。我们为了减少重复代码,重写Response 类
白墨石
2021/01/12
1.6K0
Django REST Framework-序列化和反序列化
在Django REST Framework(DRF)中,序列化和反序列化是将Django模型转换为序列化的格式,以便我们可以将其发送到前端应用程序并从前端应用程序接收数据的过程。
玖叁叁
2023/04/24
7840
[javaSE] 面向对象(Object类toString)
当我们创建一个对象,会在硬盘上生成xxx.class的文件,jdk定义了Class类来描述这些class文件
唯一Chat
2019/09/10
7130
[javaSE] 面向对象(Object类toString)
Django OAuth2 和 JWT 案例
在重写 Ansible 监控平台时, 需要前后端分离, 并且需要使用公司的账户系统。 而前后端认证我一直采取的 JWT 认证规范,具体为什么这么选择, 这里不多讲。而符合DRF 的JWT 框架, 默认使用的是 Django 自带的账户系统做的。 所以再 OAuth2 和 JWT 结合需要做点工作。
用户1416054
2018/08/02
1.4K0
面向对象中Object常用属性总结
Object.prototype.constructor:特定的函数,用户创建一个对象的原型。
小周sir
2019/09/23
9890
Django REST Framework-类视图(三)
ModelViewSet是一个基于视图集的通用类,提供了处理CRUD操作的通用功能。它继承自GenericAPIView和ViewSetMixin,提供了以下方法:
玖叁叁
2023/04/24
3180
Django REST Framework-类视图(一)
Django REST Framework提供了许多内置的视图来处理不同类型的请求。其中一种是类视图,类视图是一个基于类的视图,可以继承DRF的APIView类或其子类。类视图提供了更多的灵活性和可重用性,可以更容易地组织代码和扩展API。
玖叁叁
2023/04/24
3220
Django REST Framework-类视图(二)
除了APIView类之外,DRF还提供了许多其他的类视图,以便我们更方便地编写代码和扩展API。以下是其中的一些:
玖叁叁
2023/04/24
2970
Django-REST:002-API接口序列化
在这样的处理风格下,目前更加适合项目开发并且成本较低的一种比较流行的开发模式:项目的前后端分离结构模型的优势更加突出,通过RESTful风格指定的格式定义不同的数据处理的请求方式,后端只需要提供对应的接口,前端视图部分负责调用进行数据展示;数据的交互全部交给异步调用进行实现,能最大程度的发挥项目开发过程中开发人员的能力!
大牧莫邪
2018/08/27
1.3K0
学习版pytest内核测试平台开发万字长文入门篇
2021年,测试平台如雨后春笋般冒了出来,我就是其中一员,写了一款pytest内核测试平台,在公司落地。分享出来后,有同学觉得挺不错,希望能开源,本着“公司代码不要传到网上去,以免引起不必要麻烦”的原则,只能在家从头写一个,边重新梳理代码边温习巩固知识点,以学习交流为目的,定义为“学习版”。
dongfanger
2021/03/09
5K1
django_restframework模块学习
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
菲宇
2019/09/23
2.3K0
Unity高级开发(二)-编辑器模式下的序列化对象类与序列化属性类
正所谓:人靠衣装,佛靠金装。学会VR与游戏开发,成就大神人生。 欢迎关注公众号:雷潮课堂 编辑器下的序列化对象类与序列化属性类 一、课程内容 1-1本课程目标 1-2他可以做什么 二、SerializedObject 2-1属性 2-2方法 三、SerializedProperty 3-1属性 3-2方法 四、练习 获取材质球中的属性 1、课程内容 1-1 本课程目标 学会序列化对象类与序列化属性类,达到掌握策划高难度 1-2可以做什么 通过SerializedObject访问P
孙寅
2020/07/06
2.1K0
第 3 篇:实现博客首页文章列表 API
此前在讨论基于模板引擎的开发方式和 django-rest-framework 开发的异同时说过,django-rest-framework 开发和传统的开发方式没有什么不同,区别仅在于返回的数据格式不同而已。
HelloGitHub
2021/05/14
1.1K0
django-rest-framewor
REST是一种软件架构设计风格,不是标准,也不是具体的技术实现,只是提供了一组设计原则和约束条件。
py3study
2020/01/20
1.6K0
点击加载更多

相似问题

django序列化程序对象没有属性

113

Django:'UtilisateurUpdateView‘对象没有属性' object’

16

Django REST framework: AttributeError: object没有'serializer‘属性

10

AttributeError:在django rest框架中,“序列化程序”对象没有属性“Meta”

28

Django REST框架: AttributeError:序列化对象没有属性“Meta”

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档