Skip to main content

Safes a complete tree of django models - from bottom to top.

Project description

save_deep

This package first saves all the children of the given oject and then the object itself. It solves the error: ValueError: save() prohibited to prevent data loss due to unsaved related object '<<foreign_object>>'.

Note: it does not work (yet) with circular dependencies

Example

Say you have this this model

class Company(models.Model):
    name = models.CharField(max_length=256)

class Employee(models.Model):
    username = models.CharField(max_length=256)
    company = models.ForeignKey(Company, on_delete=models.CASCADE)

If you try to do

Employee(username='tom', company=Company(name='some-name')).save()

you get

ValueError: save() prohibited to prevent data loss due to unsaved related object '<<foreign_object>>'.

But if you use save_deep, the company is saved first, then the employee

employee = save_deep(Employee(username='tom', company=Company(name='some-name')))

This works with a deeply nested object-tree and with updates (and update/create-mixes) as well as long as there are no circular dependencies.

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

django_save_deep-0.0.2.tar.gz (6.3 kB view details)

Uploaded Source

Built Distribution

django_save_deep-0.0.2-py3-none-any.whl (7.0 kB view details)

Uploaded Python 3

File details

Details for the file django_save_deep-0.0.2.tar.gz.

File metadata

  • Download URL: django_save_deep-0.0.2.tar.gz
  • Upload date:
  • Size: 6.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.5

File hashes

Hashes for django_save_deep-0.0.2.tar.gz
Algorithm Hash digest
SHA256 e3e2d6ff3b5987ec30b6cb19c35c4c0a88c85157a63613d7c2d514e183814303
MD5 c7c05d062238e1bf3efd697b5d36b802
BLAKE2b-256 88be558c343602b4f2d71ceac8fa4af6f1a3f9f5447d17db7a833eaf105500ef

See more details on using hashes here.

File details

Details for the file django_save_deep-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: django_save_deep-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 7.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.5

File hashes

Hashes for django_save_deep-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 a7438604c09364ab3b5dd79b672544ae21da56b3b706031cbbc71e4135762ac0
MD5 51413b6c81026c5fff684f12531a9298
BLAKE2b-256 ffd56d7266d1475efc8185bd6ac787c0ac300de75c16440c04224429692e3816

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