drf_serpy.Fields
- drf_serpy.Fields
- Field Objects
- StrField Objects
- IntField Objects
- FloatField Objects
- BoolField Objects
- MethodField Objects
- ImageField Objects
- ListField Objects
- DateField Objects
- DateTimeField Objects
Field Objects
class Field(object)
Arguments:
attr(str): The attribute to get on the object, using the same format asoperator.attrgetter. If this is not supplied, the name this field was assigned to on the serializer will be used.call(bool): Whether the value should be called after it is retrieved from the object. Useful if an object has a method to be serialized.label(str): A label to use as the name of the serialized field instead of using the attribute name of the field.required(bool): Whether the field is required. If set toFalse, :meth:Field.to_valuewill not be called if the value isNone.schema_type(openapi.Schema): drf-yasg schema type of the Field, ifNone, schema type of the attribute of theFieldwill be used,
getter_takes_serializer
Set to True if the value function returned from
:meth:Field.as_getter requires the serializer to be passed in as the
first argument. Otherwise, the object will be the only parameter.
to_value
def to_value(value: Type[Any]) -> Union[dict, list, bool, str, int, float]
Transform the serialized value.
Override this method to clean and validate values serialized by this
field. For example to implement an int field: ::
def to_value(self, value):
return int(value)
Arguments:
value: The value fetched from the object being serialized.
as_getter
def as_getter(serializer_field_name: str, serializer_cls: Type["Serializer"])
Returns a function that fetches an attribute from an object.
Return None to use the default getter for the serializer defined in
Arguments:
serializer_field_name(str): The name this field was assigned to on the serializer.serializer_cls: TheSerializerthis field is a part of.
get_schema
def get_schema() -> Union[None, openapi.Schema]
get the openapi.Schema of the field
Returns:
Union[None, openapi.Schema]: return the openapi.Schema for the given schema_type
StrField Objects
class StrField(Field)
A Field that converts the value to a string.
IntField Objects
class IntField(Field)
A Field that converts the value to an integer.
FloatField Objects
class FloatField(Field)
A Field that converts the value to a float.
BoolField Objects
class BoolField(Field)
A Field that converts the value to a boolean.
MethodField Objects
class MethodField(Field)
A Field that calls a method on the Serializer.
This is useful if a Field needs to serialize a value that may come
from multiple attributes on an object. For example: ::
class FooSerializer(Serializer):
plus = MethodField()
minus = MethodField('do_minus')
def get_plus(self, foo_obj) -> int:
return foo_obj.bar + foo_obj.baz
def do_minus(self, foo_obj) -> int:
return foo_obj.bar - foo_obj.baz
foo = Foo(bar=5, baz=10)
FooSerializer(foo).data
# {'plus': 15, 'minus': -5}
Arguments:
method(str): The method on the serializer to call. Defaults to'get_<field name>'.
ImageField Objects
class ImageField(Field)
A Field that converts the value to a image url.
ListField Objects
class ListField(Field)
to_value
def to_value(value: List[Union[Type[Any], bool, str, float, int]]) -> List[Union[str, int, bool, float]]
Arguments:
value(list): List of self.field_attrs or list of primitive types
DateField Objects
class DateField(Field)
A Field that converts the value to a date format.
DateTimeField Objects
class DateTimeField(DateField)
A Field that converts the value to a date time format.