notice/apps/interfaces/serializers.py

79 lines
2.6 KiB
Python

# -*- coding: utf-8 -*-
# @Time : 2021/9/14 23:24
# @Author : Flora.Chen
# @File : serializers.py
# @Software: PyCharm
# @Desc:
from rest_framework import serializers
from .models import Interfaces
from projects.models import Projects
from configures.models import Configures
from testcases.models import TestCases
from projects.models import Projects
class InterfacesModelSerializer(serializers.ModelSerializer):
"""接口序列化器类"""
project_id = serializers.PrimaryKeyRelatedField(queryset=Projects.objects.all(), label="所属项目id", help_text="所属项目id")
project = serializers.SlugRelatedField(slug_field="name", read_only=True, label="所属项目名称", help_text="所属项目名称")
class Meta:
model = Interfaces
exclude = ("update_time",)
extra_kwargs = {
"name": {
"error_messages": {"required": "请输入接口名称", "null": "接口名称不能为null", "blank": "接口名称不能为空字符串",
"max_length": "接口名称长度不能超过200"}
},
"tester": {
"error_messages": {"required": "请输入测试人员", "null": "测试人员不能为null", "blank": "测试人员不能为空字符串",
"max_length": "测试人员长度不能超过50"}
},
"desc": {
"error_messages": {"max_length": "简要描述长度不能超过200"}
},
"project": {
"error_messages": {"required": "请选择所属项目", }
},
"create_time": {
"format": "%Y-%m-%d %H:%M:%S"
}
}
def to_internal_value(self, data):
result = super(InterfacesModelSerializer, self).to_internal_value(data)
result["project"] = result.pop("project_id")
return result
class TestcasesNameSerializer(serializers.ModelSerializer):
"""获取用例名称"""
class Meta:
model = TestCases
fields = ('id', 'name')
class TestCasesInterfaceSerializer(serializers.ModelSerializer):
testcases = TestcasesNameSerializer(many=True)
class Meta:
model = Interfaces
fields = ("testcases", )
class ConfiguresNameSerializer(serializers.ModelSerializer):
"""获取配置名称"""
class Meta:
model = Configures
fields = ('id', 'name')
class ConfiguresInterfaceSerializer(serializers.ModelSerializer):
configures = ConfiguresNameSerializer(many=True)
class Meta:
model = Interfaces
fields = ("configures", )