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

DRF - `write_only=True`在响应模式中显示

DRF是Django REST framework的缩写,是一个用于构建Web API的强大框架。在DRF中,write_only=True是一个参数,用于指定某个字段在响应模式中不可见,只能用于请求中的写操作。

具体来说,write_only=True可以应用于序列化器(Serializer)中的字段,用于控制字段在序列化过程中的行为。当某个字段被设置为write_only=True时,该字段的值将不会出现在序列化的结果中,只能用于请求中的写操作,比如创建或更新对象。

这个参数通常用于敏感信息的处理,例如用户的密码字段。通过将密码字段设置为write_only=True,可以确保在API的响应中不会返回密码信息,只能通过请求中的写操作来设置密码。

在DRF中,可以通过在序列化器中设置write_only=True来实现该功能。下面是一个示例:

代码语言:python
复制
from rest_framework import serializers

class UserSerializer(serializers.Serializer):
    username = serializers.CharField()
    password = serializers.CharField(write_only=True)

    def create(self, validated_data):
        # 创建用户逻辑
        pass

    def update(self, instance, validated_data):
        # 更新用户逻辑
        pass

在上面的示例中,password字段被设置为write_only=True,这意味着在序列化的结果中不会包含密码信息。在创建或更新用户时,可以通过请求中的password字段来设置密码。

推荐的腾讯云相关产品和产品介绍链接地址:

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

相关·内容

经历了源码的痛苦,掌握DRF的核心序列化器

序列化 序列化demo 字段类型 字段参数 序列化自定制返回字段 方法一:序列化类(serializers.py)写 方法二:表模型(models.py)写 反序列化 反序列化demo 反序列化之局部和全局钩子...ModelSerializer模型类序列化器 字段参数 DRF的核心--序列化器 上一篇介绍了很多有关视图类以及DRF的APIView执行流程、Request对象的源码分析,源码都get了;...,自定义类,继承DRF框架的Serializer及其子类 写要序列化的字段(序列化哪些就写哪些,不序列化的不写) 使用序列化类,视图类中用,得到序列化类对象,对象.data,通过Response返回给前端...= serializers.CharField(write_only=True) authors = serializers.CharField(write_only=True) #...': True, 'max_length': 8, 'min_length': 3} } # 指定序列化的字段:两种写法:序列化类写;models写 price_info

77610

5.寻光集后台管理系统-用户管理(序列化器)

序列化器 drf的核心概念。 drf提供了一个serializer类,它可以非常方便的序列化模型对象和查询集为json或者其他形式的内容。...', 'max_length': '仅允许6-20个字符的密码', }) write_only=True:表示只有进行写入操作的时候才会用到这个字段 就是说只有前端往后端发送请求的时候...(), message='此邮箱已注册')] }, } drf自带了一个判重的校验,如果有定制的校验的话就需要编写一个函数 from rest_framework.validators...,管理员需要能对其他账号进行增删改查操作,所以需要编写一个比较全的序列化器来处理 密码响应的时候不展示,所以extra_kwargs特别标注 更改密码的时候由于密码是加密的,所以需要使用自带的set_password...序列化器的校验(validate方法),可以对数据进行一定程度上的改造

33830

DRF框架学习(二)

通常简称为DRF框架 或 REST framework。 DRF框架是建立Django框架基础之上,由Tom Christie大牛二次开发的开源项目。...,意思是这个字段反序列化时必须输入 read_only、write_only 默认是False,如果是仅用于反序列化输出时使用,那么将write_only改为True,如果是仅用于序列化输出,将read_only...default 我们使用序列化和反序列化时使用的默认值 allow_null 表明该字段是否允许传入None,默认False help_text、label_text 可以理解为注释,web直观显示的时候有一个显示信息...= serializers.PrimaryKeyRelatedField(label='图书',read_only=True) # 书中(一)添加,因为书中有好多个英雄人物,想要都显示,所以要添加...heroinfo_set = serializers.PrimaryKeyRelatedField(read_only=True, many=True) 2)使用指定的序列化器将关联对象进行序列化(字典套字典的显示方式

4.1K30

Django REST Framework

: 仅用于序列化输出 write_only: 反序列化输入 required:反序列化时必须输入,默认是True allow_null: 允许传入None validators: 使用验证器创建serializer...视图的扩展 Request 把请求解析成一个request实例 属于DRF的,跟django的HttpRequest不太一样 得到Request之前有一个Parse对传入的数据请求进行解析 data...属性 请求数据体,类似于Django的request.POST, request.FILES DRF主要指的是Json query_params 所有传入的关键字 api.tulingxueyuan.com...Renderer渲染器对返回内容进行渲染 REST_FRAMEWORK = { 'DEFAULT_RENDERER_CLASSES': ( # 默认响应渲染类...的子类跟View有不同的地方传入传出数据用的是drf的请求和反馈类会引发并处理APIExceptiondispatch之前,会进行身份验证,权限检查,流量控制支持的属性有authentication_classes

2.1K63

DRF框架的英文单词

DRF框架的英文单词 1. prefix/'prifɪks/前缀,我们路由配置的时候经常看见这个单词。flask,我们可以设置url的时候为了区别视图,类似功能的url全部加一个前缀。...2. version/'vɝʒn/版本,这个计算机上面很常见,DRF框架的RESTful设计风格中有一种规范,就是将api的版本号放入url,如下:(1.0即版本号) http://www.example.com...4. filter/'fɪltɚ/过滤,我们DRF框架的高级功能,就有过滤这一项。可以url地址传参数,我们进行过滤。 5....但是pattern计算机通常用来表示模式。 19. Serialization/ˌsɪərɪrlaɪ'zeɪʃn/序列化,这个单词全球只有美式音标,统一的。...,默认False write_only 表明该字段仅用于反序列化输入,默认False required 表明该字段反序列化时必须输入,默认True default 序列化和反序列化时使用的默认值 allow_null

1.7K30

django rest framework之注册

最近没怎么更新文章 确实有点小忙 一直都在研究django rest framework,简称drf drf的开发理念顺应了现代的开发理念 前后端分离式 而我这个技术小白,很想很想 体验一把前后端分离式开发到底是怎么个流程...(required=True,write_only=True,max_length=4,min_length=4,label="验证码",...=True 大家 可以从代码中找到 我直接讲作用吧,加了这句代码,那么这句代码所在的那个模型的属性就不会再被drf 序列化,从而也不会再去生成对应的对象 也许你有点晕,我这么解释,你看1,我们的用户模型...,也就是UserProfile,我们是没有account这个属性的,但是我们注册的时候,发送验证码,是一定需要这个account这个属性的 ,因为系统只有知道了你的账号,无论是电话还是邮箱 才能给你发验证码...但是序列化生成UserProfile的时候,我们不需要这个account这个属性 对嘛 所以,我们需要加上 write_only=True 这样一来,前端也有account,后端也能发验证码 还能避免

55140

DRF序列化和反序列化——基本使用

DRF序列化和反序列化 定义序列化器 DRF中有serializer的类,我们可以从rest_framework进行导入。...现在,我们views定义一个视图类,如下: class BookView(View): def get(self, request, *args, **kwargs): book_id...表明该字段仅用于反序列化输入,默认False required 表明该字段反序列化时必须输入,默认True default 反序列化时使用的默认值 label 用于HTML展示API页面时,显示的字段名称...验证成功,返回True,否则返回False。 验证失败返回的错误信息存放在errors属性,验证成功可以通过序列化器的validated_data属性获取数据。...反序列化 保存 验证成功后,我们可以通过validated_data属性获取数据,拿到数据以后,可以通过序列化器实现create()和update()两个方法来完成新增和修改操作。

1K10

drf框架serializersModelSerializer类简化序列化和反序列化操作

0905自我总结 drf框架serializersModelSerializer类 基于seriallizer类进行简化 https://www.cnblogs.com/pythonywy/p/11455508...'is_delete') # 刨除某些字段 # depth = 1 # 跨表自动深度(展示外键表的所有字段) 注意点 其中fields与exclude不能共存 depth不能控制显示字段...,与外键相关的表会全部显示出来 二.利用模型类的方法进行指导字典的生成 例如有两个模型A与B,他们的c字段有外键关联 modles.py class B(models.Model): name...参与序列化和反序列的字段1','参与序列化和反序列的字段2') extra_kwargs ={ 参与序列化和反序列的字段1:{ 'write_only...': True #只写 } 参与序列化和反序列的字段2:{ 'read_only': True #只读

1.4K20

Python进阶40-drf框架(二)

---- 解析模块 ---- 为啥要配置解析模块 """ 1)drf给我们通过了多种解析数据包方式的解析类 2)我们可以通过配置来控制前台提交的哪些格式的数据后台解析,哪些数据不解析 3)全局配置就是针对每一个视图类...已经处理了,None代表需要自己处理 # 自定义异常处理文件exception,文件书写exception_handler函数 from rest_framework.views import exception_handler...:param status: http响应状态码 :param template_name: drf也可以渲染页面,渲染的页面模板地址(不用了解) :param...serializers.SerializerMethodField() def get_gender_value(self,obj): return obj.get_gender_display()  序列化过程...views 的 exception_handler 先处理 if response is None: 通过context,exc记录详细的异常信息 自己自定义响应对象

1.9K20

Django+Vue开发生鲜电商平台之7.用户登录和注册功能

2.DRF实现发送短信验证码接口 需要在DRF接入短信验证码发送。...View时,create()方法调用serializer.is_valid()时需要加入参数raise_exception=True,这样执行时如果is_valid()方法出错就会抛出异常,不会再向下执行...因此验证之后需要删除,validate(attrs)方法实现即可,同时因为人为设定前端传递回来的手机号数据变量名为username而非mobile,因此需要在validate(attrs)方法为...从之前的DRF的测试可以总结出,DRF请求消息返回的规范为: http_code { field1: ['', ''], field2: [], ......(attrs)又将其删去,导致序列化时找不到code字段,因此出错,这是需要将字段的write_only设置True,以确保更新或创建实例时可以使用该字段,但是序列化表示形式时不包括该字段。

4.2K20

用 Django REST framework 来实现一次性验证码(OTP)

今天讲一下如何用 Django REST framework[1](DRF) 来实现 OTP,阅读本文需要一定的 DRF 的基础知识。...2、发送前验证,是否上次发送的验证码 1 分钟之内?是否邮箱已经注册?,如果是,拒绝发送,并提示用户,如果否,发送验证码。 3、验证,是否是 5 分钟之内的验证码,是否正确,如果是,则放行。...=True) # 利用drf的validators验证username是否唯一 username = serializers.CharField(required=True, allow_blank...最后的话 一次性验证码(OTP)的逻辑简单,需要思考的是如何在 DRF 的框架填空,填在哪里?...这其实需要了解 DRF 的 ModelSerializer 类和 ViewSet 类之前的关系,调用关系上,ViewSet 类调用 ModelSerializer 来实现字段的验证和数据保存及序列化,

1.7K20
领券