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.0.1.tar.gz (5.8 kB view details)

Uploaded Source

Built Distribution

draup_django-1.0.1-py2-none-any.whl (6.6 kB view details)

Uploaded Python 2

File details

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

File metadata

  • Download URL: draup_django-1.0.1.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

Hashes for draup_django-1.0.1.tar.gz
Algorithm Hash digest
SHA256 500b304445fe4b21d19c86cfe9727cb21f52b7cc5766ea72044bba9115a554b4
MD5 4c46147286faa8d9eeb9fe4ed0eae810
BLAKE2b-256 8a5b7d4e72ce4dd210028e459281dbeb2acc8a24102f540859320f360a914ff4

See more details on using hashes here.

File details

Details for the file draup_django-1.0.1-py2-none-any.whl.

File metadata

  • Download URL: draup_django-1.0.1-py2-none-any.whl
  • Upload date:
  • Size: 6.6 kB
  • Tags: Python 2
  • 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.0.1-py2-none-any.whl
Algorithm Hash digest
SHA256 3d640ff6770062f4f9353ecc2034efd9b3d97683ad81e7238301bb8447943b4c
MD5 0279595e2854326531eb30163141b0d3
BLAKE2b-256 327648dd6da132c33b4223e2e16c01cc61445dcff53a4953f8fa36bdf7f55f20

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