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.
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 | |
|---|---|---|---|
| draup_django-1.4.0.tar.gz | 5.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| draup_django-1.4.0-py3-none-any.whl | Python 3 | none | any | Details |
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
|