[Zope] small python problem
Dieter Maurer
dieter@handshake.de
Wed, 5 Dec 2001 23:04:19 +0100
sanjeev c s writes:
> i have a form which uploads a file.
> and it calls a method which pass parameter to a python
> script. this python script creates a 'file object'.
> ....
> if picture:
> container.foldername.manage_addImage(id=id,
> file=picture)
>
> but still even if the file is not uploaded the 'file
> object' is created. what is the problem ??
The reason is easy:
Even if no file is uploaded, you get a "FileUpload" object.
Unfortunately, the "FileUpload" class does not define senseful
"__len__" or "__nonzero__" methods (this is a
bug --> <http:collector.zope.org>) and therefore, all such
objects are considered Python true values.
Your options:
* Fix "ZPublisher.HTTPRequest.FileUpload" such that it
defines a "__nonzero__" method. Post your patch to
the collector (see above). This way, you help improve
Zope
* Work around the problem in your application code.
You can use:
"if picture.filename:" in place of "if picture:"
Dieter