[Zope3-Users] Trying to use browser:form -> 404

Florian Lindner mailinglists at xgm.de
Sat Feb 11 04:10:57 EST 2006


Am Samstag, 11. Februar 2006 00:58 schrieb Alen Stanisic:
> On Sat, 2006-02-11 at 00:44 +0100, Florian Lindner wrote:
> > I get a system error:
> >
> > 2006-02-11T00:41:25 ERROR SiteError
> > http://horus:8080/++skin++centershock/cs/registrationForm.html
> > Traceback (most recent call last):
> >   File "/home/florian/Zope3/src/zope/publisher/publish.py", line 138, in
> > publish
> >     result = publication.callObject(request, object)
> >   File "/home/florian/Zope3/src/zope/app/publication/zopepublication.py",
> > line 161, in callObject
> >     return mapply(ob, request.getPositionalArguments(), request)
> >   File "/home/florian/Zope3/src/zope/publisher/publish.py", line 113, in
> > mapply
> >     return debug_call(object, args)
> >   File "/home/florian/Zope3/src/zope/publisher/publish.py", line 119, in
> > debug_call
> >     return object(*args)
> >   File "/home/florian/Zope3/src/zope/formlib/form.py", line 738, in
> > __call__ self.update()
> >   File "/home/florian/Zope3/src/zope/formlib/form.py", line 707, in
> > update self.setUpWidgets()
> >   File "/home/florian/Zope3/src/zope/formlib/form.py", line 770, in
> > setUpWidgets
> >     adapters=self.adapters, ignore_request=ignore_request
> >   File "/home/florian/Zope3/src/zope/formlib/form.py", line 337, in
> > setUpEditWidgets
> >     field = form_field.field
> > AttributeError: 'str' object has no attribute 'field'
> > 127.0.0.1 - - [11/Feb/2006:00:41:25 +0200]
> > "GET /++skin++centershock/cs/registrationForm.html HTTP/1.1" 500 89 "-"
> > "Mozilla/5.0 (compatible; Konqueror/3.4; Linux) KHTML/3.4.3 (like Gecko)"
> >
> >
> >
> > I get it now with EditForm too (the backtrace above was produced with
> > EditForm) I think I had a typo that caused the 404 in my last post,
> > sorry!.
> >
> > Florian
>
> In your view.py is the syntax when you set form_fields valid, I haven't
> seen it before:
>
> form_fields = IRegistrationForm
>
> I usually do it by
>
> (from zope.formlib import form)
> form_fields = form.Fields(IRegistrationForm)

I've changed it to:

class registrationForm(form.EditForm):
    form_fields = form.Fields(IRegistrationForm)


but that gives a system error:

2006-02-11T10:07:02 ERROR SiteError 
http://horus:8080/++skin++centershock/cs/registrationForm.html
Traceback (most recent call last):
  File "/home/florian/Zope3/src/zope/publisher/publish.py", line 138, in 
publish
    result = publication.callObject(request, object)
  File "/home/florian/Zope3/src/zope/app/publication/zopepublication.py", line 
161, in callObject
    return mapply(ob, request.getPositionalArguments(), request)
  File "/home/florian/Zope3/src/zope/publisher/publish.py", line 113, in 
mapply
    return debug_call(object, args)
  File "/home/florian/Zope3/src/zope/publisher/publish.py", line 119, in 
debug_call
    return object(*args)
  File "/home/florian/Zope3/src/zope/formlib/form.py", line 738, in __call__
    self.update()
  File "/home/florian/Zope3/src/zope/formlib/form.py", line 707, in update
    self.setUpWidgets()
  File "/home/florian/Zope3/src/zope/formlib/form.py", line 770, in 
setUpWidgets
    adapters=self.adapters, ignore_request=ignore_request
  File "/home/florian/Zope3/src/zope/formlib/form.py", line 373, in 
setUpEditWidgets
    value = field.get(adapter)
  File "/home/florian/Zope3/src/zope/schema/_bootstrapfields.py", line 171, in 
get
    return getattr(object, self.__name__)
ForbiddenAttribute: ('blablubb', <CS.centershock.centershock.Centershock 
object at 0xb757a46c>)


blablubb is a field of my interface.


Any idea? Missing security declarations?

Thanks,

Florian


More information about the Zope3-users mailing list