Django Utility - Draup Labs
Project description
draup_django
Delete, Update functionality for normalised models
Use-Case :
Draup Django
provide 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).
getAffectedObjects
takes 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.
deleteObject
takes 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.
updateObjectDependencies
takes 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
getAffectedObjects
function[{'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
updateObjectDependencies
function will transafer object dependency fromid:1
toid:2
so parent_id ofBob
will become2
. -
Updated Child Table:
id Name parent_id 1 Bob 2 2 Jack 2
-
Limitation :
updateObjectDependencies
will 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.
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
File details
Details for the file draup_django-1.2.0.tar.gz
.
File metadata
- Download URL: draup_django-1.2.0.tar.gz
- Upload date:
- Size: 5.8 kB
- Tags: Source
- Uploaded using 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
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cb2a443c8ee43485c5fbcd2522785c95b409e4bc4cab57c16df952f9162b6a84 |
|
MD5 | d3a0998853f28c39a17bc1301136a840 |
|
BLAKE2b-256 | b8045592fcb8145d9137caf6c44e8d2eaa778e393f7a6ec97a7ae1daa500fef3 |
File details
Details for the file draup_django-1.2.0-py3-none-any.whl
.
File metadata
- Download URL: draup_django-1.2.0-py3-none-any.whl
- Upload date:
- Size: 7.5 kB
- Tags: Python 3
- Uploaded using 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
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 06545b29fdf61396c8bfb8fa3b9d21bb6d020f60eb7778849a5a37378ee7b56c |
|
MD5 | 705f37526ed24fdf4729786d57117e84 |
|
BLAKE2b-256 | 76c0e0f7a2f36a651915dded9e2cb38f02a9f92aaa883d5ed192ad2b02f76bbb |