Python 如何从Django缓存分配和返回多个值?
不确定这是django问题还是python问题。我试图通过接受一个返回多个值的函数的值来让缓存工作 当前,页面在重载视图函数上给了我这个错误:“'NoneType'对象不可编辑” “计数器,学院\用户,姓名\学院\列表=cache.get(cache\键)”行是否正常工作?然后检查它是否为空。谢谢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
#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
最有效的回答。谢谢您!