yzk_wechat_event/utils/CustomField.py

32 lines
964 B
Python
Raw Normal View History

2023-12-13 11:41:22 +08:00
from rest_framework import serializers
class CustomDateField(serializers.DateField):
def __init__(self, *args, **kwargs):
super().__init__(*args, format='%Y-%m-%d', **kwargs)
class CustomDateTimeField(serializers.DateTimeField):
def __init__(self, *args, **kwargs):
super().__init__(*args, format='%Y-%m-%d %H:%M:%S', **kwargs)
class CustomSerializerMethodField(serializers.SerializerMethodField):
def __init__(self, method_name=None, **kwargs):
super().__init__(method_name, **kwargs)
self.field_name = None
def bind(self, field_name, parent):
self.field_name = field_name
return super().bind(field_name, parent)
def to_representation(self, value):
method = getattr(self.parent, self.method_name)
return method(value, self.field_name)
class CustomMoneyField(serializers.IntegerField):
def to_representation(self, value):
return value / 100 if value else 0