Re: [Zope-dev] [BlueBream] Reg. persisting data in ZODB via forms
Hello Jonah, On Wed, 2011-06-08 at 22:25 -0700, Jonah Crawford wrote:
Ah yes you do that in the zcml right after you define your object in a class :)
I am not aware of the zcml configuration that can mark a class as persistent. If you could explain, it would be helpful.
On Jun 8, 2011, at 10:23 PM, Joshua Immanuel wrote:
I was trying to add a non persistent object to the BTreeContainer. I was of the notion that I don't need to make my object persistent explicitly, as I am adding it to the persistent btree container. The add operation was successful but the modify operation on my object failed to persist. Making my object persistent solved the issue.
I derived my class from persistent.Persistent in order to make it persistent. P.S: Do a reply all, as your replies are directed just to me and it doesn't reach the mailing list. -- Joshua Immanuel HiPro IT Solutions Private Limited http://hipro.co.in
On 9 June 2011 07:12, Joshua Immanuel <josh@hipro.co.in> wrote:
Hello Jonah,
On Wed, 2011-06-08 at 22:25 -0700, Jonah Crawford wrote:
Ah yes you do that in the zcml right after you define your object in a class :)
I am not aware of the zcml configuration that can mark a class as persistent. If you could explain, it would be helpful.
ZCML is not relevant here.
On Jun 8, 2011, at 10:23 PM, Joshua Immanuel wrote:
I was trying to add a non persistent object to the BTreeContainer. I was of the notion that I don't need to make my object persistent explicitly, as I am adding it to the persistent btree container. The add operation was successful but the modify operation on my object failed to persist. Making my object persistent solved the issue.
I derived my class from persistent.Persistent in order to make it persistent.
Deriving your class from Persistent is normally the right choice. Storing immutable non-persistent objects such as strings, ints, floats or tuples of them also works without surprises. Storing mutable non-persistent objects in the ZODB is considered advanced usage and you must inform the persistence machinery on any modification. The best way to do this is to re-assign the non-persistent object to it's parent persistent object, causing the parent to be marked as modified. Laurence
participants (2)
-
Joshua Immanuel -
Laurence Rowe