Jim, pardon my denseness but I'm still struggling with this. It seems like your response contains conflicting ideas.
You simply have to arrange to get SubjectChoices to be an attribute of the class managed by the ZClasses.
import Zope app=Zope.app() app.Control_Panel.yourProduct.yourZClass.setClassAttr( 'SubjectChoices',{...}) get_transaction().commit() app._p_jar.close()
I understand the sentence above and the code snippet to mean the same. Namely, that *if* MyProduct.MyZClass had a properties tag, I could simply use this to add a new property which all instances of MyZClass would acquire. ZClasses don't have property forms and so I use the python code to add the desired attribute. However, ...
If there was a way to create dictionary properties, you could do this via a propertysheet, since ZClass propertysheets create default property values in classes. Since Zope doesn't give you a way to spell this through the web, you have to resort to Python.
If I add a ClassVariables propertysheet to MyZClass, won't this get instantiated every time I create a new MyZClass instance? It seems to me that "class variables" cannot be added to a ZClass via the web interface, not just for dictionaries (since this isn't a recognized Zope property type), but for all property types. Cheers, Darran. -- Darran Edmundson [Darran.Edmundson@anu.edu.au]