I've got a ZClass to which I'd like to add (variable) properties when the instance is created. I made a "Basic" propertysheet and tried "manage_addProperty" but Zope reports that properties cannot be added. I can add properties to DTML Documents. Can you construct a ZClass such that you can add properties to an instance, both via management screens and programatically? Thanks. -P -- Technology Concepts & Design, Inc.
In the propertysheets.py file in the Zope Source, you'll find some help for modifying and adding properties programmatically. I've included an example Credit goes to Tazzzzz at http://www.zope.org/Members/tazzzzz/addZClasses for getting me started. def addFLSNews(newdir, newid, data, newtitle, REQUEST=None): """ """ # This sucks in some data from Zope to form the body of the ZClass. # It also grabs an id, title and a directory # This creates a new object of Zclass FLSNewsStory using the data inside your chosen directory newob=newdir.Control_Panel.Products.FLSNewsStory.FLSNewsStory(data) # This sets the id of the object newob._setId(newid) # this actually sets the object newdir._setObject(newid, newob) # this sets the title of the object newob.title=newtitle # this is a second function that parses the data to get a value called Author # the getAuthor part is unimportant to this discussion--just know a value is set for the variable varAuthor varAuthor=getAuthor(data) # this sets a property in the FLSNewsProperties propertysheet of FLSNewsStory called Byline to the value of varAuthor newob.propertysheets.FLSNewsProperties.manage_changeProperties({'Byline':var Author}) # if your Zclass doesn't already have properties attached, you can also use something like newob._setProperty('Byline', varAuthor, type='string') to set a property in the basic property sheet and something like this: newob._updateProperty('Byline', varAuthor) to update a property that exists Now somebody who's a better Zoper than I can check and see where I screwed up this explanation! -- Chris Muldrow, muldrow@mac.com
From: "Paul Godley" <pdg@tcdi.com> Date: Thu, 29 Mar 2001 17:32:02 -0500 To: <zope@zope.org> Subject: [Zope] Add properties to ZClass instance?
I've got a ZClass to which I'd like to add (variable) properties when the instance is created. I made a "Basic" propertysheet and tried "manage_addProperty" but Zope reports that properties cannot be added. I can add properties to DTML Documents.
Can you construct a ZClass such that you can add properties to an instance, both via management screens and programatically?
Thanks.
-P
-- Technology Concepts & Design, Inc.
_______________________________________________ Zope maillist - Zope@zope.org http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )
participants (2)
-
Chris Muldrow -
Paul Godley