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)