La configuración de un objeto en la API de caché de Django falla debido a un error de pickle

StackOverflow https://stackoverflow.com/questions/1615721

Pregunta

Estoy intentando configurar manualmente un objeto en la API de caché de Django, pero falla (creo que debido al decapado) El objeto me lo entrega un tercero, mi código es:

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))

Cuando ejecuto esto recibo un error;

Can't pickle <type 'etree._Element'>: import of module etree failed
in -    cache.set("user_list_ds", user_list, 10*60) # 10 minutes 

Soy muy nuevo en Python, y me pregunto cuál es la mejor manera de resolver esto. ¿Tengo que decantar algo primero?

¿Fue útil?

Solución

Parece que necesita instalar ElementTree , porque la operación pickle intenta y falla al importar el módulo etree .

ACTUALIZACIÓN: Mirándolo más a fondo, ¿está realmente intentando almacenar en caché los nodos del documento? Si está intentando almacenar en caché los datos del nodo, es probable que deba procesar el valor que está almacenando actualmente en user_list .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top