DRF Nested
Project description
DRF Nested Utils
This package provides a set of utils to help developers implement nested data handling for Django Rest Framework.
This package adds support for:
- Direct relation handling (
ForeignKey) - Reverse relation handling (i.e. allows working with models that have current as
ForeignKey) - Direct and reverse
ManyToMany, with special flow for the m2m relationships with customthroughmodels GenericRelationwith special mixins
It also provides mixins for handling Unique and UniqueTogether validators.
Mixins
Nested Serializer Mixins
BaseNestedMixin
Base mixin that contains the methods for retrieval of all related fields of the serializer model.
It also provides all the update_or_create methods for each type of fields
(direct relation, reverse relation, many-to-many relation and generic relation).
CreateNestedMixin
Mixin that allows creation of the nested models on serializer create call.
You can provide a list of fields that should be forbidden on create,
the list of fields should be placed into the forbidden_on_create
field on serializer Meta class.
Mixin uses BaseNestedMixin properties and update_and_create methods to create nested fields.
UpdateNestedMixin
Mixin that allows modification of the nested models on serializer update call.
Mixin uses BaseNestedMixin properties and update_and_create methods to update nested fields.
Validator Mixins
UniqueFieldMixin
Mixin that allows usage of the unique fields with nested mixins.
This mixin moves the validation process from is_valid to create/update call.
This is done because the fields that should be used in the unique validation may not be
set on the initial is_valid call and are set just before the nested create/update call.
UniqueTogetherMixin
Mixin that allows usage of the unique_together fields with nested mixins.
This mixin moves the validation process from is_valid to create/update call.
This is done because the fields that should be used in the unique_together validation may not be
set on the initial is_valid call and are set just before the nested create/update call.
Helper Mixins
NestableMixin
Mixin that allows to specify the name of the nested field by setting write_source if the initial source of the field is different
from the field name or the initial source is not writable (a property, for example).
ThroughMixin
Mixin that allows to specify if through model should be connected to current model after the through model create/update call.
GenericRelationMixin
Mixin that should be used on serializers that represent connected by GenericRelation models.
Examples
You can see an example project in examples/ directory.
Notes
If you are using a Many-to-Many field with
sourceproperty or you have athroughmodel on your serializer, you should add aNestableMixinto the target serializer and add awrite_sourcefield when you initialize that serializer.
In case of the
sourceproperty you should add an actual model field that would allow you to properly connect your model with related ones.
In case of the
throughmodel you should have it set to therelated_nameof the connectedthroughmodel
You can also use
ThroughMixinand setconnect_to_modelto False if you want to have the ability to keep thethroughmodel connection in case thethroughmodel ForeignKey should be different from the current model.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file drf_nested-1.3.3.tar.gz.
File metadata
- Download URL: drf_nested-1.3.3.tar.gz
- Upload date:
- Size: 11.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.2 CPython/3.10.11 Darwin/24.4.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1a44018b30ccc03ad741a115e0e7ba92efc4f52af836fcbccc5cdb333a22a261
|
|
| MD5 |
44056ca9f3ad1071a920fd954ac8df8b
|
|
| BLAKE2b-256 |
466f950da9b03a6f904b0e25f95c4194d2749d55dc2565ef71d41042bd417359
|
File details
Details for the file drf_nested-1.3.3-py3-none-any.whl.
File metadata
- Download URL: drf_nested-1.3.3-py3-none-any.whl
- Upload date:
- Size: 15.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.2 CPython/3.10.11 Darwin/24.4.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8f29577c2780aee594886d6ff805b4e42cb0b6b75cd1553ec778fa22ff82d905
|
|
| MD5 |
ab6a10617282789076772195f8cb3473
|
|
| BLAKE2b-256 |
b11a03f9db880c4ca1b63bb03b5d2bfbdb0043b86015e2a1436a4581f50d257d
|