Я пытаюсь вручную установить объект в API кеша Django, но он не работает (я думаю, из-за травления?) Объект предоставлен мне третьим лицом, мой код:Установка объекта в API кэша Django завершилась неудачно из-за ошибки pickle
def index(request, template_name="mytemplate.htm"):
user_list = cache.get("user_list_ds")
if user_list is None:
# this is the expensive bit I'm trying to cache
# given to me by a third part
user_list = graffiti.user_list("top", 100).responseObj().blocks()
cache.set("user_list_ds", user_list, 10*60) # 10 minutes
return render_to_response(template_name, { 'user_list' : user_list,}, context_instance = RequestContext(request))
Когда я запускаю это, я получаю сообщение об ошибке;
Can't pickle <type 'etree._Element'>: import of module etree failed
in - cache.set("user_list_ds", user_list, 10*60) # 10 minutes
Я новичок в Python, и мне интересно, как лучше решить эту проблему, мне нужно солить что-то в первую очередь?
Вы были правы, мне пришлось изменить тип данных, которые мы пытались кэшировать, в обычный список python. –