Djang Frozen Data 0.1a1 | Coderz Repository

djang-frozen-data 0.1a1

Last updated:

0 purchases

djang-frozen-data 0.1a1 Image
djang-frozen-data 0.1a1 Images

Free

Languages

Categories

Add to Cart

Description:

djangfrozendata 0.1a1

Django Frozen Data
Django model custom field for storing a frozen snapshot of an object.
Principles

Behaves like a ForeignKey but the data is detached from the related object
Transparent to the client - it looks and behaves like the original object
The frozen object cannot be resaved
Supports nesting of objects

Usage
A frozen field can be declared like a ForeignKey:
class Foo:
frozen_bar = FrozenObjectField(Bar, help_text="This is a frozen snapshot of the object.")
fresh_bar = ForeignKey(Bar, help_text="This is a live FK relationship.")

The field behaves exactly like a FK, with the exception that the object cannot be saved:
>>> bar = Bar()
>>> foo = Foo.objects.create(frozen_bar=bar, fresh_bar=bar)
>>> # the fresh field can be updated as you would expect
>>> foo.fresh_bar.save()
>>> # the frozen field cannot - to prevent overwriting new data.
>>> foo.frozen_bar.save()
>>> StaleObjectError: 'Object was frozen; defrosted objects cannot be saved.'

Issues - TODO

Deserialization of DateField/DateTimeField values
Deserialization of DecimalField values
Deserialization of UUIDField values
Deep object freezing

Running tests
The tests themselves use pytest as the test runner. If you have installed the poetry evironment, you can run them thus:
$ poetry run pytest

License:

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files In This Product: (if this is empty don't purchase this product)

Customer Reviews

There are no reviews.