%global _empty_manifest_terminate_build 0
Name:		python-drf-nested
Version:	1.2.24
Release:	1
Summary:	please add a summary manually as the author left a blank one
License:	License :: OSI Approved :: MIT License
URL:		https://pypi.org/project/drf-nested/
Source0:	https://mirrors.nju.edu.cn/pypi/web/packages/1d/bd/5d4482702d510f77ed7377b882ba0ed2daa1524ca549bb62490a66286e34/drf_nested-1.2.24.tar.gz
BuildArch:	noarch

Requires:	python3-django
Requires:	python3-djangorestframework

%description
## DRF Nested Utils

[![pypi package](https://img.shields.io/pypi/v/drf-nested.svg)](https://pypi.org/project/drf-nested/)

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 custom `through` models
* `GenericRelation` with 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 `source` property or you have a `through` model on your serializer, 
you should add a `NestableMixin` to the target serializer and add a `write_source` field when you initialize that serializer.

> In case of the `source` property you should add an actual model field that would allow you to properly connect your model with related ones. 

> In case of the `through` model you should have it set to the `related_name` of the connected `through` model

> You can also use `ThroughMixin` and set `connect_to_model` to False if you want to have the ability to keep the `through` model connection in case the `through` model ForeignKey should be different from the current model.

%package -n python3-drf-nested
Summary:	please add a summary manually as the author left a blank one
Provides:	python-drf-nested
BuildRequires:	python3-devel
BuildRequires:	python3-setuptools
BuildRequires:	python3-pip
%description -n python3-drf-nested
## DRF Nested Utils

[![pypi package](https://img.shields.io/pypi/v/drf-nested.svg)](https://pypi.org/project/drf-nested/)

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 custom `through` models
* `GenericRelation` with 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 `source` property or you have a `through` model on your serializer, 
you should add a `NestableMixin` to the target serializer and add a `write_source` field when you initialize that serializer.

> In case of the `source` property you should add an actual model field that would allow you to properly connect your model with related ones. 

> In case of the `through` model you should have it set to the `related_name` of the connected `through` model

> You can also use `ThroughMixin` and set `connect_to_model` to False if you want to have the ability to keep the `through` model connection in case the `through` model ForeignKey should be different from the current model.

%package help
Summary:	Development documents and examples for drf-nested
Provides:	python3-drf-nested-doc
%description help
## DRF Nested Utils

[![pypi package](https://img.shields.io/pypi/v/drf-nested.svg)](https://pypi.org/project/drf-nested/)

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 custom `through` models
* `GenericRelation` with 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 `source` property or you have a `through` model on your serializer, 
you should add a `NestableMixin` to the target serializer and add a `write_source` field when you initialize that serializer.

> In case of the `source` property you should add an actual model field that would allow you to properly connect your model with related ones. 

> In case of the `through` model you should have it set to the `related_name` of the connected `through` model

> You can also use `ThroughMixin` and set `connect_to_model` to False if you want to have the ability to keep the `through` model connection in case the `through` model ForeignKey should be different from the current model.

%prep
%autosetup -n drf-nested-1.2.24

%build
%py3_build

%install
%py3_install
install -d -m755 %{buildroot}/%{_pkgdocdir}
if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
pushd %{buildroot}
if [ -d usr/lib ]; then
	find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/lib64 ]; then
	find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/bin ]; then
	find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/sbin ]; then
	find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
fi
touch doclist.lst
if [ -d usr/share/man ]; then
	find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
fi
popd
mv %{buildroot}/filelist.lst .
mv %{buildroot}/doclist.lst .

%files -n python3-drf-nested -f filelist.lst
%dir %{python3_sitelib}/*

%files help -f doclist.lst
%{_docdir}/*

%changelog
* Wed May 31 2023 Python_Bot <Python_Bot@openeuler.org> - 1.2.24-1
- Package Spec generated