DRF一对多序列化和反序列化
models.py
# 商品分类
class Category(models.Model):
name = models.CharField(max_length=32) # 商品
class Goods(models.Model):
name = models.CharField(max_length=32)
price = models.DecimalField(max_digits=9,decimal_places=2)
cate = models.ForeignKey(to='Category',on_delete=models.CASCADE)urls.py
from django.urls import path,include
from . import views
urlpatterns = [
path('goods/',views.GoodsView.as_view()),
]seralizers.py
# 序列化
class GoodsSerializer(serializers.ModelSerializer):
# 如果想查出分类名称 CharField(source='<本model中的外键>.<外键指向的model的相应属性>')
cate_name = serializers.CharField(source='cate.name')
class Meta:
model=Goods
fields = ('cate_name','name','price') # 反序列化
class GoodsUnSerializer(serializers.Serializer):
name = serializers.CharField(max_length=32)
price = serializers.DecimalField(max_digits=9,decimal_places=2)
cate = serializers.IntegerField() # 添加
def create(self, data):
return Goods.objects.create(
cate_id = data.pop('cate'),
**data
)
# 编辑
def update(self,instance,data):
return instance.update(
cate_id = data.pop('cate'),
**data
)
views.py
class GoodsView(APIView):
# 查询
def get(self,request):
goods = models.Goods.objects.all()
gs = GoodsSerializer(goods,many=True)
return Response(gs.data) # 添加
def post(self,request):
dic = {"name":"金丝猴","price":132,'cate':3}
gs = GoodsUnSerializer(data=dic)
if gs.is_valid():
gs.save()
return HttpResponse('ok')
return HttpResponse('error') # 更新
def put(self,request):
obj = models.Goods.objects.filter(id=1)
dic = {"name":"金丝猴123","price":234,'cate':2}
gs = GoodsUnSerializer(obj,data=dic)
if gs.is_valid():
gs.save()
return HttpResponse('put-ok')
return HttpResponse('put-error')
DRF一对多序列化和反序列化的更多相关文章
- day71:drf:API接口&Restful API规范&Django Rest Framework&drf中的序列化和反序列化功能
目录 1.web应用模式 2.API接口 3.Restful API规范 4.序列化 5.Django Rest Framework 1.drf的简单介绍 2.drf的特点 3.如何安装drf 4.d ...
- DRF单表序列化和反序列化
安装 djangorestframework pip install djangorestframework 将rest_framework注册到app上 INSTALLED_APPS = [ 're ...
- drf序列化与反序列化
序列化器-Serializer 定义序列化器 Django REST framework中的Serializer使用类来定义,须继承自rest_framework.serializers.Serial ...
- DRF框架(二)——解析模块(parsers)、异常模块(exception_handler)、响应模块(Response)、三大序列化组件介绍、Serializer组件(序列化与反序列化使用)
解析模块 为什么要配置解析模块 1)drf给我们提供了多种解析数据包方式的解析类 form-data/urlencoded/json 2)我们可以通过配置来控制前台提交的哪些格式的数据后台在解析,哪些 ...
- DRF框架(三)——media资源路径设置、多表设计复习及补充、序列化组件(ModelSerializer)操作多表(序列化与反序列化)、多表序列化与反序列化整合(重点)
media资源路径设置 (设置好后把图片放在这个文件夹中,通过链接能访问到图片) 1.先在根目录设置一个media文件夹 2.配置settings.py,加上下面的 MEDIA_URL = '/me ...
- drf序列化及反序列化
假如把drf看做一个汉堡包,我们之前讲的模块属于汉堡包前面的盖盖(请求模块.渲染模块)和底底(异常模块.解析模块.响应模块),但是真正中间的夹心没有讲,那么今天我就和大家来看一下汉堡包的夹心(序列化及 ...
- drf的序列化和反序列化
序列化器--Serializer 选项参数: max_length 最大长度 min_length 最小长度 allow_blank 是否允许为空 trim_whitespace 是否截断空白字符 m ...
- drf序列化和反序列化
目录 drf序列化和反序列化 一.自定义序列化 1.1 设置国际化 二.通过视图类的序列化和反序列化 三.ModelSerializer类实现序列化和反序列化 drf序列化和反序列化 一.自定义序列化 ...
- ModelSerializer,序列化与反序列化整合
复习 """ 1.解析模块:全局局部配置 REST_FRAMEWORK = { # 全局解析类配置 'DEFAULT_PARSER_CLASSES': [ 'rest_f ...
随机推荐
- POJ 3994:Probability One
Probability One Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 1674 Accepted: 1151 D ...
- 国内OLED产业与三星到底是差之千里还是近在咫尺?
此前,市面上几乎大部分智能手机搭载的刘海屏,都是来自三星的AMOLED屏幕.虽然三星总是被诟病为中国手机厂商提供的是"次品",不过没办法,OLED屏幕的核心技术.产能等都掌握在三星 ...
- 留学Essay写作做到精准表达很关键
很多留学生在essay写作中可以迅速想到合理的中文论点.可是,写出来的英文论点却漏洞百出,不忍直视.在essay写作中我们要如何精准地用英文写出自己内心的独白呢?除了咨询老师,靠自己一样能做到! 1引 ...
- NCRE Java二级备考方案
一 配合大纲梳理基本知识点 二 多在233网校刷题
- POJ 1019:Number Sequence 二分查找
Number Sequence Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 36013 Accepted: 10409 ...
- POJ 1080:Human Gene Functions LCS经典DP
Human Gene Functions Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 18007 Accepted: ...
- 为什么ApplePay在中国一直火不起来?
今年7月,易观发布<中国第三方移动支付市场2018年第1季度监测报告>.报告显示,2018年第一季度支付宝以53.76%的市场份额占据移动支付头把交椅,腾讯金融(微信支付)则以38.95% ...
- Html 常见标签,css基础样式,css的浮动和清流,浏览器的兼容
1.html模板<!DOCTYPE html><html><head> <meta charset="UTF-8"> <tit ...
- Windbg 大改版,值得期待
早上从twitter上面看到一篇文章,看到windbg会提供一个Time Travel Debugging(TTD) 功能,该功能会在未来的版本引入. Time travel debugging: I ...
- stegsolve使用方法
Stegsolve使用方法(是因为ctf题总是遇到并且目前百度没有十分详细的探究说明) 这个没什么好说的,打开文件 ,保存,退出 在分析里面从上到下的依次意思是 File Format:文件格式 Da ...