目录
一、django查询的结果的类型是:OrderedDict类型,如下:
一、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'), ('online_time', '2021-03-12'), ('review_time', '
2021-01-08'), ('prototype_url', 'https://lanhuapp.com/url/QvlyR'), ('cases_num', 57), ('cases_cov_percent', '100%'), ('pass_percent', '100%'), ('bug_repair_percent', '96.84%'), ('bug_num', 95), ('case_bug_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: 顾名思义,就是这个字段是否必填。
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)
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)
bug_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__'