时间:2021-05-22
一直对使用DRF的了解停留在一知半解的状态,今天在实际操作中,感受到了DRF带来的方便
Django工程,其中两个model定义如下:
AutomationHeadRaw:class AutomationHeadRaw(models.Model):"""测试用例的请求的json形式参数"""id = models.AutoField(primary_key=True)automationCaseApi = models.OneToOneField(AutomationCaseApi, related_name='headRaw',on_delete=models.CASCADE, verbose_name='接口')data = models.TextField(verbose_name='源数据请求头json数据', blank=True, null=True)class Meta:verbose_name = '请求头json格式参数'verbose_name_plural = '请求头json格式参数管理'AutomationCaseApi:
1、手工转换获取到了AutomationHeadRaw模型中的data数据(json格式)
需求为取AutomationHeadRaw模型中的data数据(json格式),我在使用的时候,没有给AutomationHeadRaw建立对应的序列化类,取数时使用一下数据获取data数据:
head_test = AutomationHeadRaw.objects.filter(automationCaseApi=self.case_api_id)
self.header =json.loads(json.loads(serializers.serialize('json', head))[0]["fields"]["data"])
手工转换获取到了AutomationHeadRaw模型中的data数据(json格式)
2、自动转换获取到了AutomationCaseApi模型中的data数据
另一个模型AutomationCaseApi ,定义了对应的model序列化类AutomationCaseApiSerializer如下:
则获取模型AutomationCaseApi可以自动转换:
self.case_data = AutomationCaseApiSerializer(
AutomationCaseApi.objects.get(id=self.case_api_id, automationTestCase=self.case_id)).data
3、因此上面的AutomationHeadRaw 可以通过添加model序列化类AutomationHeadRawSerializer自动转换数据格式:
class AutomationHeadRawSerializer(serializers.ModelSerializer):
自动化用例接口json类型请求头信息序列化
class Meta:
model = AutomationHeadRaw
fields = ('id', 'automationCaseApi', 'data')
获取数据语句可以改成,不需要手工转换:
head = AutomationHeadRawSerializer(
AutomationHeadRaw.objects.filter(automationCaseApi=self.case_api_id),
many=True).data
注意:
上面获取数据的AutomationHeadRawSerializer()方法,入参1 :AutomationHeadRaw.objects.filter(automationCaseApi=self.case_api_id)
可以为两种对象:
AutomationHeadRaw.objects.filter(automationCaseApi=self.case_api_id) (filter方法对象为queryset类型)
AutomationCaseApi.objects.get(id=self.case_api_id, automationTestCase=self.case_id)(get方法对象为model类 类型)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
0.前言对象的序列化和反序列化作用就不再赘述,php中序列化的结果是一个php自定义的字符串格式,有点类似json.我们在任何语言中设计对象的序列化和反序列化都
在使用djangorestframeworkserializer序列化在django中定义的model时,有时候我们需要额外在serializer中增加一些mo
django-rest-framework类视图拓展自django的类视图,只是针对数据的序列化和反序列化等逻辑做了封装。django-rest-framewo
java中处处体现着简单的程序设计风格,序列化作为最常用的功能之一,在java中的设计尤为“简单”。在ObjectInputStream和ObjectOutpu
今天查阅资料,简单了解了一下Parcelable接口,它是android提供的序列化对象的接口,比java中的Serializable高效些。通过这个接口序列化