[Zope] Restarting Zope makes Values in python class disappear
Mark N. Gibson
mark@ifopen.com
Tue, 4 Apr 2000 09:38:34 -0600 (MDT)
Just what I needed - Thanks!
Mark
>
> ----- Original Message -----
> From: Mark N. Gibson <mark@ifopen.com>
> > I've got a simple python class that has a data member that holds a list of
> > strings (among other things). I can laod values into this list fine.
> > And can query the object and the list is populated. However, after I
> > restart Zope, the list for the class instance is empty. The other data
> > values in my class retain their values just fine.
>
> You're probably mutating the list without informing the instance that you've
> changed it. If you do:
>
> thing.stufflist[4] = 'newstring'
>
> or
>
> thing.stufflist.append('newstring')
>
> ...then 'thing' has no way of knowing that 'stufflist' has changed, unless
> you replace 'stufflist':
>
> # This can be confusing, since it doesn't look like it does anything
> thing.stufflist = thing.stufflist
>
> ... or tell 'thing' explicitly:
>
> # This is the official interface to mark an object changed
> thing._p_changed = 1
>
> Your changes will also get saved if you happened to change any other
> attributes of 'thing' in the same transaction, but as you've discovered this
> is unreliable at best. Explicit is better.
>
> Cheers,
>
> Evan @ digicool & 4-am
>