Draup Django
providegetAffectedObjects
takes input dict with id as key and reference of model.Sample Input : ({'id':1},model_reference)
Output : Error_list(list),prompt messages(list)
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)
updateObjectDependencies
takes input source,destination objects.Sample Input : (source,destination)
Output : Error_list(list)
Use Pip to install the module
pip install draup-django
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 from id:1
to id:2
so parent_id of Bob
will become 2
.
Updated Child Table:
id | Name | parent_id |
---|---|---|
1 | Bob | 2 |
2 | Jack | 2 |
updateObjectDependencies
will not work in case of unique constraint,one to one field in model.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.