Files
shoppy/config/models.py
T

23 lines
586 B
Python

from django.db import models
from django.core.cache import cache
class SingletonModel(models.Model):
class Meta:
abstract = True
def save(self, *args, **kwargs):
self.pk = 1
super(SingletonModel, self).save(*args, **kwargs)
def delete(self, *args, **kwargs):
pass
@classmethod
def load(cls):
cache_key = f"{cls._meta.model_name}_singleton_key"
if not (data := cache.get(cache_key)):
data = cls.objects.values().get(pk=1)
cache.set(cache_key, data, 60 * 60 * 24)
return cls(**data)