Vous êtes ici : Accueil / Forums & ML / Forum Zope / Forum Général Zope / Unpickleable ? (pour Vegalien)

Unpickleable ? (pour Vegalien)

Remonter à Forum Général Zope
  • Unpickleable ? (pour Vegalien)

    Envoyé par zyon le 11 Janvier 2005 à 23:21
    Salut,

    Dans mon code modifier de PloneArticle, j'ai souvent l'erreur suivante :


    Traceback (innermost last):
    Module ZPublisher.Publish, line 107, in publish
    Module Zope.App.startup, line 222, in commit
    Module ZODB.Transaction, line 236, in commit
    Module ZODB.Transaction, line 351, in _commit_objects
    Module ZODB.Connection, line 416, in commit
    - __traceback_info__: (('Products.PloneArticle.PloneArticle', 'PloneArticle'), '\x00\x00\x00\x00\x00\x00b\x97', '')
    UnpickleableError: Cannot pickle objects


    En faisant un peu de Google, j'ai trouvé ce lien :


    Dans le milieu du post, Vegalien parle d'un probleme identique, avec probleme sur méthode et propriété !!!
    J'avoue ne pas connaitre cette erreur et ne pas comprendre comment vegalien l'a résolu !!!

    Pouvez vous me donner qq explications !!!?? Merci d'avance
  • Unpickleable ? (pour Vegalien)

    Envoyé par zyon le 12 Janvier 2005 à 13:45
    lorsque tes objets sont persistents ,zope scan les attributs de l'objet pour les stocker dans la zodb grace à la fonctionnalité pickle de python qui permet de transformer des instances en contenu stockable.

    certains objets ne peuvent pas etre stockés, par exemple les sockets.

    pour éviter l'erreur, prefixe le nom de l'attribut par _v_
  • Unpickleable ? (pour Vegalien)

    Envoyé par zyon le 12 Janvier 2005 à 16:24
    ébauche de compréhension de ma part mais ....

    comprend pas "prefixe le nom de l'attribut par _v_"

    Merci
  • Unpickleable ? (pour Vegalien)

    Envoyé par zyon le 12 Janvier 2005 à 17:25
    c'était il y a trois ans !!!

    bon effectivement, comme dit tarek, pickle est une méthode python pas un cornichon au vinaigre.

    je me souviens du probleme, je referencais une method (foo.bar) et non pas le résultat renvoyé par la méthode (foo.bar() )

    voilà pour mon probleme de l'époque

    pour l'attribut imagine qu'il s'appele foobar et bien renomme le en _v_foobar

    http://python.active-venture.com/lib/module-pickle.html
  • Unpickleable ? (pour Vegalien)

    Envoyé par zyon le 12 Janvier 2005 à 17:32
    Merci de vos réponses !! je vais regarder cela !!!

    "c'était il y a trois ans!!" :
    Tu ne serais pas entrain de m'accuser d'avoir fait du Google + search sur zopera + zopeur avant de poser ma question !!!!:laugh::laugh::laugh:
  • Unpickleable ? (pour Vegalien)

    Envoyé par zyon le 12 Janvier 2005 à 18:51

    security.declareProtected(ArticleCore_editPermission, 'appendAuteur')
    def appendAuteurZodb(self, portrait='', title = '', REQUEST = {}):
    """
    appendAuteurZodb(self, portrait='', title = '', REQUEST = {})
    - append a new images at the end of the list from a portrait of member

    """
    # Check lock status
    self.checkLockStatus()

    # Find a random identifier
    id = "Auteur%08d" % (int(random.random() * 100000))
    while id in self.auteurs_ids:
    id = "Auteur%08d" % (int(random.random() * 100000))

    # Append it
    portrait.title = title
    self._setObject(id, portrait)

    self.auteurs_ids.append(id)
    self.auteurs_ids = self.auteurs_ids # Ensure persistancy

    # associate with a cache if possible
    img_obj = getattr(self, id)
    cache = getattr(self, 'PloneArticleThumbRAMCache', None)
    Log(LOG_DEBUG, "cache", cache)
    if cache:
    img_obj.ZCacheable_setManagerId('PloneArticleThumbRAMCache')



    Je ne vois que portrait qui peut poser problème. Je le récupere aprés l'appel de ce script


    portrait = context.portal_membership.getPersonalPortrait(name)
    context.appendAuteurZodb(portrait,name)


    Une précaution à prendre en compte ??

    Merci du coup de pouce
  • Unpickleable ? (pour Vegalien)

    Envoyé par zyon le 16 Janvier 2005 à 15:55
    Une idée pour me donner un coup de pouce ??

    Je tiens à dispo un tar de PloneArticle 2.0.6 avec la modif 'Onglet Auteur'
    pour voir de plus prét de problème

    Merci d'avance
Rendu par Ploneboard