Stéphane Brault wrote:
Hi Jim,
the Items object is my object, linked to my items, table which implements the IItems interface I use for my form:
from neteven.interfaces.items import IItems
from zope.formlib import form
class ItemsForm(form.EditForm):
form_fields = form.Fields(IItems)
form_fields = form_fields.omit('dateLastUpdate')
Items is defined this way:
from zope.interface import implements
from sqlobject import *
from sqlos import SQLOS
from neteven.interfaces.items import IItems
class Items(SQLOS):
implements(IItems)
class sqlmeta:
table = 'items'
....
When I add this zcml declaration :
<browser:page
for=".interfaces.items.IItems"
name="edit.html"
class=".forms.items.ItemsForm"
menu="zmi_views"
title="Edit a Item"
permission="zope.ManageContent"
/>
everything works fine from the ZMI (I created simple containers to test that).
My JSON server side code is:
def getItemEdit(self, itemId):
item = Items.get(itemId) #a sqlos function to get an Item instance
from the table given its Id
return ItemsForm(item, self.request)()
The fact is I don't use any page template right now ( though I might do this later to have a nice GUI).
Actually, you are using a page template.
Calling ItemsForm() invokes the render() method of
zope.formlib.form.FormBase, which uses pageform.pt in the zope.formlib
folder by default. This is where title_or_id is requested.
You may wish to set a different template for your ItemsForm class.
Have you tried subclassing form.SubPageEditForm instead of form.EditForm?
-Jim Washington
_______________________________________________
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users