Daryl Stultz writes:
I have a product folder called "TestClass" with 2 ZClasses: class1 and class2. The following is an exerpt from the class1 constructor:
<dtml-with "class1.createInObjectManager(REQUEST['id'], REQUEST)"> <dtml-call "REQUEST.set('id', 'myClass2')"> <dtml-call "class2_add(_.None, _, NoRedir=1)"> </dtml-with>
I want class2 to be created INSIDE of the class 1 instance. Instead, class2 (always with an id of "myClass2") is created at the same level as the class1 instance. How do I change the namespace to get the class2 instance inside class1? You should look at the source of your "class2_add", especially the constructor that creates the object.
I expect, that you use "class2.createInObjectManager" to create your "class2" instance. "C.createInObjectManager" usually uses "C.aq_parent" to determine the object manager where the new C instance should be created (unless it has a "Destination" attribute). This should be your "class1" instance "instance1", more precisely, an acquisition wrapper for it. There are two possibilities: 1. for reasons, I do not understand, "class2.aq_parent" is not "instance1" 2. it is "instance1", but "instance1" does not have a "_setObject" method, i.e. "class1" is not derived from ObjectManager. Dieter