Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何让Django缓存计算机在Django.contrib.auth.models.User上工作?_Python_Django_Django Models_Django Contrib_Django Cache Machine - Fatal编程技术网

Python 如何让Django缓存计算机在Django.contrib.auth.models.User上工作?

Python 如何让Django缓存计算机在Django.contrib.auth.models.User上工作?,python,django,django-models,django-contrib,django-cache-machine,Python,Django,Django Models,Django Contrib,Django Cache Machine,我正在使用缓存我的Django ORM对象。这是一个很棒的软件。它极大地减少了几乎所有模型的数据库访问量——而且使用起来很简单 但是,仍然没有缓存一个模型:django.contrib.auth.models.User。因为这不是我自己的应用程序代码,所以我没有为它配备缓存机器指令告诉您添加到每个型号的CachingMixin。所以现在,即使我自己的所有应用程序模型都被缓存,但User模型却没有。因此,仍然有许多不必要的数据库访问 消除这些数据库访问的最佳方法是什么django.contrib.

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

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

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

您需要在添加缓存mixin时保留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'

谢谢你,一个外星人。这看起来是一个很好的解决方案。