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 to 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
Metadata
Release files for django-cache-pydantic 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| django_cache_pydantic-0.1.1.tar.gz | 7.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| django_cache_pydantic-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 15.3 kB
Release files / django_cache_pydantic-0.1.1.tar.gz
| Download URL | django_cache_pydantic-0.1.1.tar.gz |
|---|---|
| Size | 7.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
172cc2b385311e0cfb4375643e87f567c3a2f6259b9dbd7a3012d6fca6b3a4d3
|
|
BLAKE2b-256 checksum How to use checksums |
8e8fb620e6956f5eb44e63cfd1a08cf4c00935301b835a553c181792a739fa96
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.11.4
|
Release files / django_cache_pydantic-0.1.1-py3-none-any.whl
| Download URL | django_cache_pydantic-0.1.1-py3-none-any.whl |
|---|---|
| Size | 7.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f32c239e7fca18290ad369c2252ee3b32fc934e57c2eb3d5fd66c3452d519a78
|
|
BLAKE2b-256 checksum How to use checksums |
badfeb18eee23321b170f9e9e6bb09ba6b7a8be5b6a6dbb3b87091dc63f3640e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.11.4
|