79 lines
2.6 KiB
Python
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", ) |