A serializer mixin for Django REST Framework. It can dynamically inline objects via Django relation fields ForeignKey, ManyToManyField, OneToOneField and even GenericForeignKey. This allows create complex documents on the fly.
- Python (tested with 3.4, 3.5)
- Django (tested with 1.8, 1.9, 1.10)
- Django REST Framework (tested with 3.2, 3.3)
- inherit from InlinerSerializerMixin
- register serializer for future inlining with singular and plural like this: register_inline(singular_name, plural_name, ModelSerializer)
- request related objects via inline parameter Syntax: ?inline=model1.submodel2.submodel3,model2,model3
register_inline(POSTCODE, POSTCODES, PostcodeSerializer)
register_inline(ADDRESS, ADDRESSES, FullAddressSerializer)
register_inline(USER, USERS, UserSerializer)
request
/api/users?inline=address.postcode
result - users with inlined addresses, addresses with inlined postcodes
P.S. Based on silverlogic/djangorestframework-expander