57 lines
1.7 KiB
Python
57 lines
1.7 KiB
Python
|
|
# coding=utf-8
|
|||
|
|
"""
|
|||
|
|
@project: MaxKB
|
|||
|
|
@Author:虎虎
|
|||
|
|
@file: api.py
|
|||
|
|
@date:2025/4/14 15:20
|
|||
|
|
@desc:
|
|||
|
|
"""
|
|||
|
|
from django.utils.translation import gettext_lazy as _
|
|||
|
|
from rest_framework import serializers
|
|||
|
|
|
|||
|
|
|
|||
|
|
class DefaultResultSerializer(serializers.Serializer):
|
|||
|
|
"""
|
|||
|
|
响应结果
|
|||
|
|
"""
|
|||
|
|
code = serializers.IntegerField(required=True, help_text=_('response code'), label=_('response code'))
|
|||
|
|
message = serializers.CharField(required=False, default="success", help_text=_('error prompt'),
|
|||
|
|
label=_('error prompt'))
|
|||
|
|
data = serializers.BooleanField(required=False, default=True)
|
|||
|
|
|
|||
|
|
|
|||
|
|
class ResultSerializer(serializers.Serializer):
|
|||
|
|
"""
|
|||
|
|
响应结果
|
|||
|
|
"""
|
|||
|
|
code = serializers.IntegerField(required=True, help_text=_('response code'), label=_('response code'))
|
|||
|
|
message = serializers.CharField(required=False, default="success", help_text=_('error prompt'),
|
|||
|
|
label=_('error prompt'))
|
|||
|
|
|
|||
|
|
def get_data(self):
|
|||
|
|
pass
|
|||
|
|
|
|||
|
|
def __init__(self, **kwargs):
|
|||
|
|
self.fields['data'] = self.get_data()
|
|||
|
|
super().__init__(**kwargs)
|
|||
|
|
|
|||
|
|
|
|||
|
|
class PageDataResponse(serializers.Serializer):
|
|||
|
|
"""
|
|||
|
|
分页数据
|
|||
|
|
"""
|
|||
|
|
total = serializers.IntegerField(required=True, label=_('total number of data'))
|
|||
|
|
current = serializers.IntegerField(required=True, label=_('current page'))
|
|||
|
|
size = serializers.IntegerField(required=True, label=_('page size'))
|
|||
|
|
|
|||
|
|
def __init__(self, records, **kwargs):
|
|||
|
|
self.fields['records'] = records
|
|||
|
|
super().__init__(**kwargs)
|
|||
|
|
|
|||
|
|
|
|||
|
|
class ResultPageSerializer(ResultSerializer):
|
|||
|
|
|
|||
|
|
def __init__(self, **kwargs):
|
|||
|
|
super().__init__(**kwargs)
|
|||
|
|
self.fields['data'] = PageDataResponse(self.get_data())
|