Das Einstellen eines Objekts in der Django -Cache -API schlägt aufgrund eines Gurkenfehlers fehl

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

Frage

Ich versuche, ein Objekt in der Django -Cache -API manuell festzulegen, aber es schlägt fehl (ich glaube, aufgrund von Wickeln?) Das Objekt wird mir von einem Dritten gegeben, mein Code ist:

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

Wenn ich das ausführe, bekomme ich einen Fehler;

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

Ich bin sehr neu in Python und ich frage mich, wie ich das am besten auflösen kann. Muss ich zuerst etwas überlegen?

War es hilfreich?

Lösung

Es scheint, dass Sie installieren müssen ElementTree, weil die pickle Operation versucht und kann die nicht importiert etree Modul.

UPDATE: Versuchen Sie tatsächlich, Dokumentknoten zu untersuchen? Wenn Sie versuchen, die Daten aus dem Knoten zu zwischenstrahlen, müssen Sie wahrscheinlich eine Verarbeitung des Wertes durchführen, in dem Sie gerade speichern user_list.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top