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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
|