[Zope] ZClass Confusion over object id

Brian K. Holdsworth bhold@awod.com
Sun, 16 Jan 2000 13:09:53 -0500


I have embarked on my first effort to create a custom ZClass for a site I am
building.  It almost works!  The problem has something to do with the way
the object "id" gets created when I make an instance of my custom ZClass.  I
am using Zope 2.1.2 and my ZClass inherits from DTML Document.  I upgraded
to the latest version hoping it would fix the problem. It didn't, so I
assume now that I am doing something wrong.

Here is what I am using for my addForm method:

<HTML>
<HEAD><TITLE>Add Article</TITLE></HEAD>
<BODY BGCOLOR="#FFFFFF" LINK="#000099" VLINK="#555555">
<H2>Add Article</H2>
<form action="ArticleClass_add"><table>
<tr><th>Id:</th>
    <td><input type=text name="id"></td>
</tr>
<tr><th>Title:</th>
    <td><input type=text name="title"></td>
</tr>
<tr><th>Author:</th>
    <td><input type=text name="author"></td>
</tr>
<tr><th>Summary:</th>
    <td><textarea name="synopisis" cols="40" rows="10"></textarea></td>
</tr>
<tr><td></td><td><input type=submit value=" Add "></td></tr>
</table></form>
</body></html>

The title, author, and synopsis properties are added to my ZClass on a
property sheet called "article_info".  I include these lines in my add
method so that the properties can be filled in at object creation time:

<!--#with "ArticleClass.createInObjectManager(REQUEST['id'], REQUEST)"-->
       <!--#call "propertysheets.article_info.manage_editProperties(
                  REQUEST)"-->
<!--#/with-->

The basic problem is that when I create an instance, the "id" property ends
up blank!  I see the object in the manage GUI with its id, but when I try to
access the "id" of the instance in DTML, I get a value of "<string>" instead
of the id I assigned.  The other properties, like title and author, get
created correctly.  The edit page for the new object instance (it is a
sub-class of DTML Document) also displays a blank id.

Any clues???

Brian Holdsworth