rest Serialzier 改变字段格式
来源:互联网 发布:知豆二手车zhidouzz 编辑:程序博客网 时间:2024/06/05 06:34
前言
我们用Serializer返回Json数据的时候,我们会发现有的字段不是我们想要的效果,
比如一个datetime类型的字段,会默认返回为:
。
"update_time": "2017-07-08T00:41:07.201525Z"
而我们想要的效果是:
"update_time": "2017-07-08 01:15"
那么该如何实现呢?我们一起来看看。
实践
我们先来看看models都有哪些类:
class User(models.Model): username = models.CharField(max_length=20, null=False, unique=True) password = models.CharField(max_length=20, null=False) name = models.CharField(max_length=10, null=False, unique=True) # 名称class Blog(models.Model): title = models.CharField(max_length=50, null=False) body = models.TextField() owner = models.ForeignKey(User) # 博客的创建者 create_time = models.DateTimeField("创建日期", auto_now_add=True) update_time = models.DateTimeField("更新日期", auto_now=True) is_deleted = models.BooleanField(default=False) def __str__(self): return self.title
这就是一个简单的博客的数据库模型了~~
那么来看看serializer:
class BlogSerializer(serializers.ModelSerializer): owner = serializers.ReadOnlyField(source='owner.name') class Meta: model = Blog fields = ('id', 'title', 'body', 'owner','create_time','update_time')
也非常的简单,那么我们应该怎么改变create_time
和update_time
的格式呢?
自定义一个字段序列化类:
class FormatTimeField(serializers.BaseSerializer): def to_representation(self, value): return value.now().strftime('%Y-%m-%d %H:%M')
这里我们是只读的,所以,只需要重写to_representation这个方法,其中的value是传递进来的字段,在这个例子中就是datetime。
然后我们调用
datetime.now().strftime('%Y-%m-%d %H:%M')
就可以得到指定格式的时间了!!!使用自定义的序列化类:
class BlogSerializer(serializers.ModelSerializer): owner = serializers.ReadOnlyField(source='owner.name') create_time = FormatTimeField(read_only=True) update_time = FormatTimeField(read_only=True) class Meta: model = Blog fields = ('id', 'title', 'body', 'owner','create_time','update_time')
浏览器得到的json数据就是如下效果啦:
{ "id": 4, "title": "ICELEE的博客", "body": "哎哟 不错哦", "owner": "李斌2", "create_time": "2017-07-08 01:23", "update_time": "2017-07-08 01:23" }
后记
所以,改变某个字段还是很简单的,我们只需要继承serializers.BaseSerializer
类,然后通过传入的value然后自己想要的值就可以啦!!!
阅读全文
0 0
- rest Serialzier 改变字段格式
- DataTable中根据某一个字段来改变本行格式
- 格式改变
- reST 文本格式
- PostgreSQL改变字段类型
- Hbase REST操作Json格式
- latex 改变段落格式
- 改变MySQL 编码格式
- excel双击改变格式
- Spring Data Rest如何暴露ID字段
- django-rest搜索排序字段使用
- ssrs中的字段格式
- C# Gridview 字段格式
- 数据库字段格式处理
- Oracle 字段格式显示
- timestamp 字段的格式
- Oracle 改变字段长度 语句
- mysql 添加字段 删除字段 改变字段的顺序
- kill等待session的方法
- Java 递归算法
- html 和 css 之间的关系
- javascript学习(九)— 方法
- Window server2003 开启vpn
- rest Serialzier 改变字段格式
- JDK中对称加密DES
- Asp.net DataTable to CSV 文件
- git服务器搭建
- Hdu 2026 首字母变大写
- 数据库优化
- HDOJ 5965 扫雷 【DP】
- 【HDU 4248】组合数学 A Famous Stone Collector
- 学习笔记2017.07.08-day6,am-CSS字体