draup_django
Delete, Update functionality for normalised models
Use-Case :
Draup Djangoprovide stateful delete, update functionality at ORM(object relational mapping)level.
Table of Content :
Stateful Delete/Update
- Below are functions inorder to get the stateful delete/update
Get Affected Objects
- List out all dependent objects(Prompt-Messages).
getAffectedObjectstakes input dict with id as key and reference of model.
Sample Input : ({'id':1},model_reference)
Output : Error_list(list),prompt messages(list)
Delete Object
- Delete object with all the dependent objects.
deleteObjecttakes input dict with id and force_delete as key and reference of model.
Sample Input : ({'id':1,'force_delete':True},model_reference)
Output : Error_list(list)
Update Object
- Transferring Object dependencies from one object to another object.
updateObjectDependenciestakes input source,destination objects.
Sample Input : (source,destination)
Output : Error_list(list)
Installation
-
Use Pip to install the module
pip install draup-django
Usage :
-
Sample model :
class parent(models.Model): name = models.CharField(max_length=100) class child(models.Model): parent = models.ForeignKey(parent, on_delete=models.CASCADE) name = models.CharField(max_length=100) -
Parent Table :
id Name 1 Alice 2 Tom -
Child Table :
id Name parent_id 1 Bob 1 2 Jack 2 -
Code :
from draup_django import utility m = models.parent """ Get Prompt Message """ error_list,prompt_message = utility.getAffectedObjects({'id':1},m) """ Deletion with all dependent objects """ error_list = utility.deleteObject({'id':1,'force_delete':True},m) """ Transferring Object dependencies """ source = m.objects.filter(id=1).first() destination = m.objects.filter(id=2).first() error_list = utility.updateObjectDependencies(source,destination) -
Output : Prompt Message of
getAffectedObjectsfunction[{'message': 'This object has been used in child 1 times.', 'model_name': 'child', 'Parent models': '', 'count': 1}] -
Note :
-
Every function returns the error_list, and hence only the operation is successful only if it is empty.
-
According to above Child/Parent Table
updateObjectDependenciesfunction will transafer object dependency fromid:1toid:2so parent_id ofBobwill become2. -
Updated Child Table:
id Name parent_id 1 Bob 2 2 Jack 2
-
Limitation :
updateObjectDependencieswill not work in case of unique constraint,one to one field in model.- Please feel free to share your thoughts and feedback at info@draup.com .
About Draup :
Draup is an enterprise decision-making platform for global CXO leaders in sales and talent domains. Draup combines Artificial Intelligence with human curation to help organizations make data-driven strategic decisions. The platform is powered by machine- generated models, which are augmented by a team of analysts adding their learning-based insights to provide a 360-degree transactable view of their sales and talent ecosystem. We work on cutting edge technolgies and run highly complex algorithms on huge volumes of data. We also rely on open-sourcing which equips us with the right tools which allows us to find truly unique and innovate solutions to several problems.
Metadata
Release files for draup-django 1.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| draup_django-1.4.0.tar.gz | 5.9 kB | Without provenance | Details for draup_django-1.4.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| draup_django-1.4.0-py3-none-any.whl | Python 3 | none | any | Details for draup_django-1.4.0-py3-none-any.whl |
Total release size: 13.5 kB
Release files / draup_django-1.4.0.tar.gz
| Download URL | draup_django-1.4.0.tar.gz |
|---|---|
| Size | 5.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
49e74b157b8246b795844a6e0e53b36408e54431770bfa023588b081f8f05d9a
|
|
BLAKE2b-256 checksum How to use checksums |
2dc8252f832a9d53c7783b07782f5a44408ae93f4212c60927ffea8e67a668b3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.5
|
Release files / draup_django-1.4.0-py3-none-any.whl
| Download URL | draup_django-1.4.0-py3-none-any.whl |
|---|---|
| Size | 7.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1bb839fa0fee28f65f5df2b2350392f2afc0a0dc20257323f8cce1293a7555ef
|
|
BLAKE2b-256 checksum How to use checksums |
58bc638e07e0faa543d6f0a00f398a454b29d40b159434880cf6a59629653e15
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.5
|
Security for draup-django 1.4.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.