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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | e3e2d6ff3b5987ec30b6cb19c35c4c0a88c85157a63613d7c2d514e183814303 |
|
MD5 | c7c05d062238e1bf3efd697b5d36b802 |
|
BLAKE2b-256 | 88be558c343602b4f2d71ceac8fa4af6f1a3f9f5447d17db7a833eaf105500ef |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | a7438604c09364ab3b5dd79b672544ae21da56b3b706031cbbc71e4135762ac0 |
|
MD5 | 51413b6c81026c5fff684f12531a9298 |
|
BLAKE2b-256 | ffd56d7266d1475efc8185bd6ac787c0ac300de75c16440c04224429692e3816 |