rest_framework_tricks.serializers package¶
Submodules¶
rest_framework_tricks.serializers.nested_proxy module¶
Serializers.
The following code is used in the usage examples of the ModelSerializer
and HyperlinkedModelSerializer
classes.
>>> from rest_framework import serializers
>>>
>>> from .models import Book
>>>
>>>
>>> class PublishingInformationSerializer(serializers.ModelSerializer):
>>>
>>> publication_date = serializers.DateField(required=False)
>>> isbn = serializers.CharField(required=False)
>>> pages = serializers.IntegerField(required=False)
>>>
>>> class Meta(object):
>>>
>>> model = Book
>>> fields = (
>>> 'publication_date',
>>> 'isbn',
>>> 'pages',
>>> )
>>> nested_proxy_field = True
>>>
>>>
>>> class StockInformationSerializer(serializers.ModelSerializer):
>>>
>>> class Meta(object):
>>>
>>> model = Book
>>> fields = (
>>> 'stock_count',
>>> 'price',
>>> 'state',
>>> )
>>> nested_proxy_field = True
-
rest_framework_tricks.serializers.nested_proxy.
extract_nested_serializers
(serializer, validated_data, nested_serializers=None, nested_serializers_data=None)[source]¶ Extract nested serializers.
Parameters: - serializer (rest_framework.serializers.Serializer) – Serializer instance.
- validated_data (dict) – Validated data.
- nested_serializers (dict) –
- nested_serializers_data –
Returns: Return type: tuple
-
class
rest_framework_tricks.serializers.nested_proxy.
HyperlinkedModelSerializer
(instance=None, data=<class 'rest_framework.fields.empty'>, **kwargs)[source]¶ Bases:
rest_framework.serializers.HyperlinkedModelSerializer
HyperlinkedModelSerializer for models with NestedProxyField fields.
Example:
>>> from rest_framework_tricks.serializers import ( >>> HyperlinkedModelSerializer, >>> ) >>> >>> >>> class BookSerializer(HyperlinkedModelSerializer): >>> >>> publishing_information = PublishingInformationSerializer( >>> required=False >>> ) >>> stock_information = StockInformationSerializer(required=False) >>> >>> class Meta(object): >>> >>> model = Book >>> fields = ( >>> 'url', >>> 'id', >>> 'title', >>> 'description', >>> 'summary', >>> 'publishing_information', >>> 'stock_information', >>> )
-
rest_framework_tricks.serializers.nested_proxy.
is_nested_proxy_field
(field)[source]¶ Check if field is nested proxy field.
Parameters: field – Returns: True or False Return type: bool
-
class
rest_framework_tricks.serializers.nested_proxy.
ModelSerializer
(instance=None, data=<class 'rest_framework.fields.empty'>, **kwargs)[source]¶ Bases:
rest_framework.serializers.ModelSerializer
ModelSerializer for models with NestedProxyField fields.
Example:
>>> from rest_framework_tricks.serializers import ModelSerializer >>> >>> >>> class BookSerializer(ModelSerializer): >>> >>> publishing_information = PublishingInformationSerializer( >>> required=False >>> ) >>> stock_information = StockInformationSerializer(required=False) >>> >>> class Meta(object): >>> >>> model = Book >>> fields = ( >>> 'url', >>> 'id', >>> 'title', >>> 'description', >>> 'summary', >>> 'publishing_information', >>> 'stock_information', >>> )
-
class
rest_framework_tricks.serializers.nested_proxy.
NestedProxyFieldIdentifier
[source]¶ Bases:
object
NestedProxyField identifier.
-
rest_framework_tricks.serializers.nested_proxy.
set_instance_values
(nested_serializers, nested_serializers_data, instance)[source]¶ Set values on instance.
Does not perform any save actions.
Parameters: - nested_serializers – Nested serializers.
- nested_serializers_data – Nested serializers data.
- instance – Instance (not yet saved)
Returns: Same instance with values set.
Return type:
Module contents¶
Serializers.
-
rest_framework_tricks.serializers.
extract_nested_serializers
(serializer, validated_data, nested_serializers=None, nested_serializers_data=None)[source]¶ Extract nested serializers.
Parameters: - serializer (rest_framework.serializers.Serializer) – Serializer instance.
- validated_data (dict) – Validated data.
- nested_serializers (dict) –
- nested_serializers_data –
Returns: Return type: tuple
-
class
rest_framework_tricks.serializers.
HyperlinkedModelSerializer
(instance=None, data=<class 'rest_framework.fields.empty'>, **kwargs)[source]¶ Bases:
rest_framework.serializers.HyperlinkedModelSerializer
HyperlinkedModelSerializer for models with NestedProxyField fields.
Example:
>>> from rest_framework_tricks.serializers import ( >>> HyperlinkedModelSerializer, >>> ) >>> >>> >>> class BookSerializer(HyperlinkedModelSerializer): >>> >>> publishing_information = PublishingInformationSerializer( >>> required=False >>> ) >>> stock_information = StockInformationSerializer(required=False) >>> >>> class Meta(object): >>> >>> model = Book >>> fields = ( >>> 'url', >>> 'id', >>> 'title', >>> 'description', >>> 'summary', >>> 'publishing_information', >>> 'stock_information', >>> )
-
rest_framework_tricks.serializers.
is_nested_proxy_field
(field)[source]¶ Check if field is nested proxy field.
Parameters: field – Returns: True or False Return type: bool
-
class
rest_framework_tricks.serializers.
ModelSerializer
(instance=None, data=<class 'rest_framework.fields.empty'>, **kwargs)[source]¶ Bases:
rest_framework.serializers.ModelSerializer
ModelSerializer for models with NestedProxyField fields.
Example:
>>> from rest_framework_tricks.serializers import ModelSerializer >>> >>> >>> class BookSerializer(ModelSerializer): >>> >>> publishing_information = PublishingInformationSerializer( >>> required=False >>> ) >>> stock_information = StockInformationSerializer(required=False) >>> >>> class Meta(object): >>> >>> model = Book >>> fields = ( >>> 'url', >>> 'id', >>> 'title', >>> 'description', >>> 'summary', >>> 'publishing_information', >>> 'stock_information', >>> )
-
class
rest_framework_tricks.serializers.
NestedProxyFieldIdentifier
[source]¶ Bases:
object
NestedProxyField identifier.
-
rest_framework_tricks.serializers.
set_instance_values
(nested_serializers, nested_serializers_data, instance)[source]¶ Set values on instance.
Does not perform any save actions.
Parameters: - nested_serializers – Nested serializers.
- nested_serializers_data – Nested serializers data.
- instance – Instance (not yet saved)
Returns: Same instance with values set.
Return type: