32 lines
964 B
Python
32 lines
964 B
Python
|
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
|