Skip to main content

Django Utility - Draup Labs

Project description

draup_django

Downloads

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 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

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

draup_django-1.3.2.tar.gz (5.9 kB view details)

Uploaded Source

Built Distribution

draup_django-1.3.2-py3-none-any.whl (7.6 kB view details)

Uploaded Python 3

File details

Details for the file draup_django-1.3.2.tar.gz.

File metadata

  • Download URL: draup_django-1.3.2.tar.gz
  • Upload date:
  • Size: 5.9 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

Hashes for draup_django-1.3.2.tar.gz
Algorithm Hash digest
SHA256 5a46b4c43c74e93c4ca6109bc744683171a0ff21f65fa9dd8bd67a9dccb2fe2b
MD5 8e81133d6d2b2afc67ee4eb2ee1702ac
BLAKE2b-256 ae41135c42082566b5ebf133de270b70ef0adf44b965158ecd9d1734dbb7429a

See more details on using hashes here.

File details

Details for the file draup_django-1.3.2-py3-none-any.whl.

File metadata

  • Download URL: draup_django-1.3.2-py3-none-any.whl
  • Upload date:
  • Size: 7.6 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

Hashes for draup_django-1.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 864026b4125f82518c8f33fb1f2e58f04a5eb72592db4075fff2b5ddb87c5ef1
MD5 aade18e4c25ab9e06576220dd253eac5
BLAKE2b-256 738376b812824e42c1aecae1216e4797888c758a7cfa192a8a409e70f3ee5a05

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page