fields = ('name', 'click_num', 'goods_front_image')
//将上述字段,添加到数据库函数
def create(self, Validated_data):
return Goods.objects.create(**validated_data)
(2)goods APP下views.py文件:
# -*- coding: utf-8 -*-
from .serializers import GoodsSerializer
from rest_framework.views import APIView
from rest_framework.response import Response
from .models import Goods
class GoodsListView(APIView):
// 接收前端传来的数据,保存在data里; serializer.save()调用serializers.py里的create()函数保存数据
def post(self, request, format=None):
serializer = GoodsSerializer(data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serialize.data, status=status.HTTP_201_CREATED)
return Response(serialize.error, status=status.HTTP_400_BAD_REQUEST)
(1)goods APP下新建serializers.py文件:# -*- coding: utf-8 -*-from rest_framework import serializers继承Modelserializer简单的写法class GoodsSerializer(serializers.Modelserializer):classMeta:model= G...
文章来源:http://xcoding.tech/tags/Emberjs欢迎访问源网站Ember Teach,Ember Teach致力于为您提供最权威、最前沿的Ember技术教程。。
adapter与
serializer
相对来说是比较高级的内容。但是也是非常常用的一个组件,最常用到这两个组件的就是Ember Data。Ember Da...
学习参考:
【1】Django REST Framework教程(1): 为什么要学习DRF, 什么是序列化和RESTful的API
【2】阮一峰: RESTful API 设计指南
目录1.
数据
的序列化1.1 序列化(seralization)与反序列化2. RESTful风格3. Django REST Framework使用3.1 DRF的安装和使用
1.
数据
的序列化
1.1 序列化(seralization)与反序列化
序列化:将属于自己
语言
的
数据
类型或对象转换为可通过网络传输或可以存储到本地磁
使用序列化器进行反序列化时,需要对
数据
进行验证后,才能获取验证成功的
数据
或
保存
成模型类对象。
在获取反序列化的
数据
前,必须
调用
is_valid()方法进行验证,验证成功返回True,否则返回False。
验证失败,可以通过序列化器对象的errors属性获取错误信息,返回字典,包含了字段和字段的错误。如果是非字段错误,可以通过修改REST framework配置中的...
为什么要用序列化组件
前后端常用json
数据
结构交互, 在后端我们常想把一个对象返回给
前端
,但是json序列化是不能序列化对象。
Django的序列化工具让你可以将Django的模型‘翻译’成其它格式的
数据
。通常情况下,这种其它格式的
数据
是基于文本的,并且用于
数据
交换\传输过程。
序列化:从Django
数据
库—Django的模型—JSON/XML等文本格式
反序列化:上面过程的反方向
序列化组件的基本使用
注意:
Serializer
的使用不需要依赖于模型。Model
Serializer
的使用需要依赖于已有m
在一个特殊应用中, 我们需要将内存中的一个对象持久化, 而这个对象是来自一个模板类实例化出来的, 不能
保存
到
数据
库中,
数据
库中只存有此对象的模板.
由于使用到泛型的Dictionary, 而Xml
Serializer
却不支持默认的泛型的Dictionary, 为此我找了些资料, 并在此文中以三种不同的方式实现. 本文中约定:
方案1: 不序列化泛型的Dictionary
方案2: 定义支...
要使用 Django Rest Framework (DRF)
保存
`MultiSelectField`
数据
,你需要做以下步骤:
1. 在你的 Django 模型中定义一个 `MultiSelectField` 字段。
2. 在 DRF 的序列化器中包含这个字段。
3. 在你的 DRF 视图中处理这个字段的
数据
。
示例代码如下:
```
python
# models.
py
from django.db import models
class MyModel(models.Model):
# 定义一个 MultiSelectField 字段
field = models.MultiSelectField(choices=CHOICES)
#
serializer
s.
py
from rest_framework import
serializer
s
from .models import MyModel
class MyModel
Serializer
(
serializer
s.Model
Serializer
):
# 包含这个字段
field =
serializer
s.MultipleChoiceField(choices=MyModel.CHOICES)
# views.
py
from rest_framework import generics
from .
serializer
s import MyModel
Serializer
from .models import MyModel
class MyModelListView(generics.List
Create
APIView):
queryset = MyModel.objects.all()
serializer
_class = MyModel
Serializer
class MyModelDetailView(generics.RetrieveUpdateDestroyAPIView):
queryset = MyModel.objects.all()
serializer
_class = MyModel
Serializer
在这个例子中,我们在 Django 模型中定义了一个 `MultiSelectField` 字段,在序列化器中包含了这个字段,并在视图中处理了这个字段的
数据
。
在这个例子中,我们使用了 `List
Create
APIView` 和 `RetrieveUpdateDestroyAPIView` 视图类,这些视图类提供了基本的 "
create
" 和 "CRUD" 功能。你可以使用其他的视图类或者自定义视图来处理
数据
,只需要确保视图能够正确处理 `MultiSelectField` 字段的
数据
即可。