第一季 | UpdateModelMixin 了解下,实现用户信息修改
Django REST框架构建Web API。Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。
如何在 serializers 中获取登录用户?
采用上下文
在 views 视图中使用 mixins 时,post 请求的 create 方法,patch 请求的 update 方法,都会在对应的 mixins 特定类中执行 serializer.save()。它会调用 serializer 的 create 或 update 方法。
执行顺序,在 serializers.py 中重写 create 方法或 update 方法,views.py 继承 CreateModelMixin,post 请求会获取相关 serializer 进行数据验证;保存实例 serializer.save(),调用 serializer.create(),执行 create 逻辑,再保存 instance.save() 返回实例。
再来看下第一季都有哪些可以回顾和用得上的小技能
验证
2. 联合 validate 对象级验证
两个字段联合在一起验证,可以重写 validate() 方法
3. Validators 验证器
Validators 可以直接作用于某个字段
ModelSerializer
自动产生基于模型的 fields
自动产生验证器,比如 unique_together 验证器
默认包含 create 和 update 方法,外键被映射为 PrimaryKeyRelatedField
上下文
self.context['request']