Thierry Florac wrote:
Le vendredi 29 janvier 2010,
  Vladislav Vorobiev <vav...@mykniga.de> a écrit :
======================================================================
...

  
Thierry thank you  for answer but it doesn't help.

I implement all what you sad. I tried with normal “list” and than 
swiched to “PersistentList”

code looks like that:

from persistent.list import PersistentList
import transaction

<snip>

myList=PersistentList([self.context.pfad, 'object])           
myList[0] = PersistentList([self.context.pfad, 'object])[0]  #hope I 
anderstud you right

ob.refList= myList 
ob._p_changed = True
ob.refList._p_changed = True 
self.context._setObject(id, ob)

After add I call again:

ob._p_changed = True
ob.refList._p_changed = True 
transaction.commit()

I see the commitet trunsactions in ZMI

The same problem. After restart ist the Attribut not in context.

For example return's

Before restart: ***1
ob.refList[0].objectValues()[0].absolute_url()
/pfad/object/FirstObjectOfReferencedObject

After restart only the id of the object:
ob.refList[0].objectValues()[0].absolute_url()
FirstObjectOfReferencedObject

Here is a place for an other question:

Normaly  self.absolute_url() returns url with hostname,  
(http://localhost/bla/bla)
but already befor restart I get without http://localhost/... see ***1

It seem's that I forgot something.  I would be glad to if somebody 
explain me this problem.
    
======================================================================

In fact I'm not really sure to understand your data structure and it's
goals...
Could you explain me what you want to do ??

Thierry
  
I want to set some references from object to another object through. I try to explain this with example classes.

Example with two classes:

#Create classes
>>>class School:
>>>   pass

>>>class People:
>>>   pass

#Create objects
>>>p=People()

>>>s0=School()
>>>s0.name="Konrad School"

>>>s1=School
>>>s1.name="Leopold School"

Now I set the referece

>>>p.school1=s0
>>>p.school2=s1

Now I can access through the attribut to s0 and s1 objects:

p.school1.name
“Konrad School“

This construction works persistent without problems.

The idea is to put the references in a list.

>>>p.schools=[s0,s1]

to access them

>>>p.schools[0].name
“Konrad School“

>>>s1.name="Leo School"
>>>p.schools[1].name
“Leo School“

>>>type(p.schools[1])
<type 'classobj'>

It works in zope without restart. If the server was restartet I get some unwanted results. See my previews posts.
The same effects I get with PersistentLists...

I hope it is more  understandable.

Thanks
Vlad
_______________________________________________
Zope maillist  -  Zope@zope.org
https://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
 https://mail.zope.org/mailman/listinfo/zope-announce
 https://mail.zope.org/mailman/listinfo/zope-dev )

Reply via email to