关于DF系列化字段的几点思考

关于DF系列化字段的几点思考

一、总概

  1. DRF序列化字段是核心,所以应该多花时间在这个代码上。前端用不到的字段不多写,能用到的也不能少写。

  2. 序列化属性中read_only, write_only是很重要的,要善于利用read_only只显示给前端,read_only就不用存储到数据库中,write_only是前端提供给后端存储到数据库中(注:只用提供存储的字段,多余的就不用提供)。

  3. source属性,当序列化字段与数据库字段不一致时才用,注:默认source的值与数据库字段名一致。

二、序列化字段的三种方式

  1. 一般序列化字段注,序列化字段与数据库字段名称一致时的操作特殊

  2. 特殊序列化字段

2.1 关连的序列化类:在数据库中有对应的字段,一般用ready_only

2.2 勾子函数的序列化:可以定义返回的值,一般用read_only。注:在函数中obj是对像,可以使用DOM操作。

三、勾子函数的序列化

python 复制代码
class 类名Serializers(serializers.ModelSerializer):
    
    字段名 = serializers.SerializerMethodField(method_name='自定义勾子函数名',read_only=True)

    class Meta:
        model= 数据库
        fields="__all__"
        
    @staticmethod #不能少
    def 自定义勾子函数名(obj):
        #obj是对象,可以用DOM操作
        return {'state':200} #只能返回JSON数据
相关推荐
IT策士4 小时前
Django 从 0 到 1 打造完整电商平台:使用 Django 消息框架与用户权限初步
数据库·django·sqlite
俊哥工具5 小时前
解决网速卡顿、断网、网络报错,万能网络修复工具教程
网络·python·django·计算机外设·智能路由器·pygame
是梦终空5 小时前
计算机源码274—基于深度学习的中医舌象智能识别与健康管理系统(源代码+数据库+12000字论文)
人工智能·python·深度学习·opencv·django·vue·springboot
龙腾AI白云1 天前
中国人工智能培训网
人工智能·django·知识图谱
带带弟弟学爬虫__1 天前
dyAPP数据采集-个人主页、发布、搜索、评论
服务器·python·算法·flutter·java-ee·django
IT策士1 天前
Django 从 0 到 1 打造完整电商平台:登录与登出功能实现
数据库·django·sqlite
IT策士1 天前
Django 从 0 到 1 打造完整电商平台:个人中心与用户信息修改
后端·python·django
向上的车轮1 天前
NestJS、Spring Cloud、FastAPI、Django 深度对比分析报告
spring cloud·django·fastapi
IT策士3 天前
Django 从 0 到 1 打造完整电商平台:Admin 后台管理与数据初始化
数据库·django·sqlite
IT策士3 天前
Django 从 0 到 1 打造完整电商平台:Django 模型进阶与数据迁移
python·django·sqlite