[Zope3-Users] formlib problem
Stéphane Brault
stephane_brault at yahoo.fr
Wed Apr 19 12:34:50 EDT 2006
Thanks Jim,
I now get the page back with the right data. I now have to figure out how to have the actions work.
I guess I'll have to ajaxify my page in order to pass the data and have the form do it's work.
I'll let you know if I encounter further problems or if it works (hopefully).
Stéphane
----- Message d'origine ----
De : Jim Washington <jwashin at vt.edu>
À : Stéphane Brault <stephane_brault at yahoo.fr>
Cc : zope3-users at zope.org
Envoyé le : Mercredi, 19 Avril 2006, 6h10mn 35s
Objet : Re: Re : Re : [Zope3-Users] formlib problem
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
More information about the Zope3-users
mailing list