Am 30.11.2012, 18:21 Uhr, schrieb Charlie Clark <charlie.cl...@clark-consulting.eu>:

Let me explain: in pdb I have access to request.form which is where I can see the difference. With Sentry I can only see the raw body of the request. I may simply have not understood well enough how to use it to inspect what's happening.
 I raise an exception in both cases in the forms' validate method.
 Do you see this until you extract it first from the request object?
  You are not having one form saying fieldname:string and the other just
fieldname?
No, they are all zope.formlib/zope.schema fields so there is no additional marshalling.

I have finally tracked down the problem: I seem to have been bitten by a change in zope.formlib 4.1.

There are two solutions: either extend a form's update method with the something like the following:

   def update(self):
        from Products.Five.browser.decode import processInputs
        from ZPublisher import HTTPRequest
# XXX: if we don't set default_encoding explicitly, main_template might
        #      set a different charset
        self.request.RESPONSE.setHeader('Content-Type',
            'text/html; charset=%s' % HTTPRequest.default_encoding)
        # BBB: for Zope < 2.14
        if not getattr(self.request, 'postProcessInputs', False):
            processInputs(self.request, [HTTPRequest.default_encoding])
        super(_EditFormMixin, self).update()

Or, more simply, base forms on those provided by five.formlib.formbase

Thanks to yuppie for fixing this in the CMF.

I can confirm that this also works with Internet Explorer.

Charlie
--
Charlie Clark
Managing Director
Clark Consulting & Research
German Office
Kronenstr. 27a
Düsseldorf
D- 40217
Tel: +49-211-600-3657
Mobile: +49-178-782-6226
_______________________________________________
Zope-Dev maillist  -  Zope-Dev@zope.org
https://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
https://mail.zope.org/mailman/listinfo/zope-announce
https://mail.zope.org/mailman/listinfo/zope )

Reply via email to