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

Uploaded Source

Built Distribution

draup_django-1.3.1-py3-none-any.whl (7.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: draup_django-1.3.1.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.1.tar.gz
Algorithm Hash digest
SHA256 1157f2a8e455cf74e953473fd84f4eed99e0a5520db302572bb549942c9110e0
MD5 c033791cecaaebd4b93caf37b29080c4
BLAKE2b-256 ff55585da0d2fa850fde4acc6add3bc4d1f327336649867ac4d187fe1096a53b

See more details on using hashes here.

File details

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

File metadata

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

Hashes for draup_django-1.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 0276a8df92fda8da9f59e6195727bf80c8f5526f59a67ce93d6b5adb2e4288ab
MD5 4b026da7bff2e6854ea5e4ac55f8ded6
BLAKE2b-256 e5a4d679d1bf8b79f96e3726316d724c68ca9e9ecc85ce8cce5fa3e497fd6d8a

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