1

我正在使用Django Cache Machine来缓存我的 Django ORM 对象。这是一个很棒的软件。它极大地减少了我几乎所有模型的数据库访问——而且它易于使用。

但是,仍然没有缓存一个模型:django.contrib.auth.models.User. 因为那不是我自己的应用程序代码,所以我没有为它配备CachingMixinCache Machine 指令告诉您添加到每个模型中。所以现在即使我自己的所有应用程序的模型都被缓存了,但User模型没有。所以仍然有许多不必要的数据库访问。

消除这些数据库访问的最佳方法是什么?django.contrib.auth.models.User不是我在 Git 中的代码库的一部分。我宁愿根本不更改该类或模块的源代码。

4

1 回答 1

3

您需要创建一个自定义用户模型,在添加缓存混合时保留 Dajgno 用户模型的功能。

我猜这已经足够了:

from caching.base import CachingManager, CachingMixin
from django.contrib.auth.models import AbstractUser, UserManager

class CachedUserManager(CachingManager, UserManager):
    pass

class CachedUser(CachingMixin, AbstractUser):
    objects = CachedUserManager()

当然,在你的 settings.py 中:

AUTH_USER_MODEL = 'myapp.CachedUser'
于 2015-01-27T19:45:53.440 回答