UnisKB/apps/common/result/api.py

57 lines
1.7 KiB
Python
Raw Normal View History

2025-04-14 12:11:23 +00:00
# coding=utf-8
"""
@project: MaxKB
@Author虎虎
@file api.py
@date2025/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())