MaxKB/apps/common/result/api.py
2025-04-14 20:11:23 +08:00

57 lines
1.7 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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())