Django application to integrate pydantic models into django cache with an orm interface.
Project description
Django Cache Pydantic is a minimal wrapper around django cache framework which allows you to create pydantic instances directly inside your django project cache and retrieve them using a similar interface like django orm.
Status
Dependencies
Pydantic >= 2.6
Django >= 3.2
Install
pip install django-cache-pydantic
Usage
Edit settings.py and add django_cache_pydantic to your INSTALLED_APPS (also config CACHES setting).
Inherit your pydantic model from PydanticCachedModel.
from pydantic import Field, Optional
from datetime import datetime
from django_cache_pydantic import PydanticCachedModel
class Person(PydanticCachedModel):
national_id: str = Field(max_length=10, pattern=r'^\d*$')
first_name: Optional[str] = None
last_name: Optional[str] = None
mobile_number: str = Field(max_length=11, pattern=r'^\d*$')
created_at: datetime = Field(default_factory=lambda: datetime.now())
class CacheMeta:
ttl = 5 * 60
primary_key_field = 'national_id'
Create your model instance directly into the cache via calling to save method or object manager create method.
# some where in your views
person = Person(national_id='123456789', mobile_number='0930444444')
person.save() # will save the instance into project default cache
# some where in your views
Person.objects.create(national_id='123456789', mobile_number='0930444444') # will save the instance into project default cache
Retrieve your model instance from the cache via calling to object manager get method.
# some where in your views
person = Person.objects.get(pk='123456789')
if person is not None:
# do some stuff
Cache pydantic meta class
You can control cache pydantic models behavior using a custom meta class called CacheMeta.
class CacheMeta:
cache_backend: str # refers to a predefined cache settings
ttl: int # default timeout for instance to live in cache
primary_key_field: str # could be set to be used as cache key
verbose: str # verbose name of base model
Cache pydantic Project Settings
Default cache to save pydantic models into.
CACHE_PYDANTIC_DEFAULT_CACHE
Default time to live of the pydantic cached models.
CACHE_PYDANTIC_DEFAULT_TTL
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
Built Distribution
Hashes for django-cache-pydantic-0.0.4.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0136cce4f6756942ad31ab283c2b98829043e30368540473f368f45be3d4545f |
|
MD5 | 99bfb787fc11f9c3703a7380bf02b4d3 |
|
BLAKE2b-256 | 6f5587dc6f96e00ab3dfe4f8954565bad0bb7f3bee9afefc70fca061088049a7 |
Hashes for django_cache_pydantic-0.0.4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 455dae1216c3280b681bf659c36b91bc5cc8fae835073bf660d6a0a5d0be5573 |
|
MD5 | a821e3d51e7ddb5c844fc260798f44f9 |
|
BLAKE2b-256 | c3446c8c43ad96af69643b76f67a2d5914088d8e880f7a3c22731eadcc2c9804 |