关于django的ORM查询出来的数据格式的转换:OrderedDict
类型转换为list。。。
⼀、django查询的结果的类型是:OrderedDict类型,如下:
[OrderedDict([('id', 1), ('pjt_start_time', '2021-01-08'), ('pre_test_start_time', '2021-03-01'), ('test_start_time', '2021-03-02'), ('pre_online_time', '2021-03-11 2021-01-08'), ('prototype_url', 'lanhuapp/url/QvlyR'), ('cases_num', 57), ('cases_cov_percent', '100%'), ('pass_percent', '100%'), ('bug_repair_percent 1.7272727'), ('project_title', 'PaaS门户⼆期')])
转换为常见类型,如list, ensure_ascii=False,保证汉字不变为ascii码;
res = json.dumps(serializer.data, ensure_ascii=False)
res_data_list=json.loads(res)
发卡网站源码⼆、serializers序列化器配置字段可以为null
read_only:True表⽰不允许⽤户⾃⼰上传,只能⽤于api的输出。如果某个字段设置了read_only=True,那么就不需要进⾏数据验证,只
会在返回时,将这个字段序列化后返回
举个简单的例⼦:在⽤户进⾏购物的时候,⽤户post订单时,肯定会产⽣⼀个订单号,⽽这个订单号应该由后台逻辑完成,⽽不应该由
⽤户post过来,如果不设置read_only=True,那么验证的时候就会报错
order = serializers.CharField(readonly=True)
write_only: 与read_only对应
required: 顾名思义,就是这个字段是否必填。
oracle获取系统当前时间constellation功放allow_null/allow_blank:是否允许为NULL/空 。
error_messages:出错时,信息提⽰。
label: 字段显⽰设置,如 label=’验证码’程序员客栈好接单
help_text: 在指定字段增加⼀些提⽰⽂字,这两个字段作⽤于api页⾯⽐较有⽤
style: 说明字段的类型,这样看可能⽐较抽象,看下⾯例⼦:
class ProjectStepModelSerializer(serializers.ModelSerializer):
pjt_start_time = serializers.DateField(required=False,allow_null=True)
pre_test_start_time = serializers.DateField(required=False,allow_null=True)
test_start_time = serializers.DateField(required=False,allow_null=True)
pre_online_time = serializers.DateField(required=False,allow_null=True)
online_time = serializers.DateField(required=False,allow_null=True)
gets和get的区别review_time = serializers.DateField(required=False,allow_null=True)
prototype_url = serializers.CharField(max_length=255,required=False,allow_null=True)
cases_num = serializers.IntegerField(required=False,allow_null=True)
cases_cov_percent = serializers.CharField(max_length=255,required=False,allow_null=True)
pass_percent = serializers.CharField(max_length=255,required=False,allow_null=True)
bug_repair_percent = serializers.CharField(max_length=255,required=False,allow_null=True)
文件格式转换appbug_num = serializers.IntegerField(required=False,allow_null=True)
case_bug_percent = serializers.CharField(max_length=255,required=False,allow_null=True)
class Meta:
model = ProjectStep
fields = '__all__'
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论