Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.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缓存分配和返回多个值?_Python_Django_Function_Caching - Fatal编程技术网

Python 如何从Django缓存分配和返回多个值?

Python 如何从Django缓存分配和返回多个值?,python,django,function,caching,Python,Django,Function,Caching,不确定这是django问题还是python问题。我试图通过接受一个返回多个值的函数的值来让缓存工作 当前,页面在重载视图函数上给了我这个错误:“'NoneType'对象不可编辑” “计数器,学院\用户,姓名\学院\列表=cache.get(cache\键)”行是否正常工作?然后检查它是否为空。谢谢 #Views.py def filter_results(): #some code here return counter, college_user, name_col

不确定这是django问题还是python问题。我试图通过接受一个返回多个值的函数的值来让缓存工作

当前,页面在重载视图函数上给了我这个错误:“'NoneType'对象不可编辑”

“计数器,学院\用户,姓名\学院\列表=cache.get(cache\键)”行是否正常工作?然后检查它是否为空。谢谢

 #Views.py

 def filter_results():
     #some code here

     return counter, college_user, name_college_List    


 def heavy_view(request):
     cache_key = 'facebookcache'
     cache_time = 180 # time to live in seconds
     counter, college_user, name_college_list = cache.get(cache_key)
     if not cache.get(cache_key):
         result = filter_results() # some calculations here
         cache.set(cache_key, result, cache_time)
     return result
这是一个Python的东西

当你这样做的时候

counter, college_user, name_college_list = cache.get(cache_key)
第一次没有值时->
None
返回。 这有用吗

result = cache.get(cache_key)
if result is None:
    result = filter_results()
    cache.set(cache_key, result, cache_time)
else:
    counter, college_user, name_college_list = result
return result

您可以这样做:

result = cache.get(cache_key)
if not result:
    result = filter_result()
    cache.set(cache_key, result, cache_time)

counter, college_user, name_college_list = result

最有效的回答。谢谢您!