Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.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 Monkey patch django.util.cache函数_Python_Django_Caching_Monkeypatching - Fatal编程技术网

Python Monkey patch django.util.cache函数

Python Monkey patch django.util.cache函数,python,django,caching,monkeypatching,Python,Django,Caching,Monkeypatching,我在弄清楚如何在django.util.cache中修补一些函数时遇到了问题。我不想编写自己的缓存中间件,我只想要更容易接受的密钥。缓存后端上的make_key属性在我的用例中也不起作用 我试着加上 from django.utils.cache import _generate_cache_key, _generate_cache_header_key from spark_core import middleware _generate_cache_key = middleware._ge

我在弄清楚如何在django.util.cache中修补一些函数时遇到了问题。我不想编写自己的缓存中间件,我只想要更容易接受的密钥。缓存后端上的make_key属性在我的用例中也不起作用

我试着加上

from django.utils.cache import _generate_cache_key, _generate_cache_header_key
from spark_core import middleware

_generate_cache_key = middleware._generate_cache_key
_generate_cache_header_key = middleware._generate_cache_header_key

在我的settings.py文件的底部,但没有任何运气。我正在使用逐站点缓存。

对缓存后端进行子类化并覆盖make_-key方法有什么问题?在后端调用make_-key时,已经调用了生成缓存键。我不确定在哪里使用了生成缓存键,但尝试对缓存后端进行子类化并覆盖make_-key方法。我做到了,传递到make_key的键值是由_generate_cache_key生成的值。它不会传递任何信息以及它如何生成密钥路径、参数等,因此我不能只覆盖make_key来自定义密钥,因为我无法访问其中所需的信息。我认为在settings.py中导入django代码不是一个好主意,因为各种django模块都依赖settings.py来工作。最好将其放在models.py文件中。