[Zope] image objects into table via python script

John Schinnerer johnschinnerer at yahoo.com
Wed Nov 17 17:45:53 EST 2004


Hello,

--- J Cameron Cooper <jccooper at jcameroncooper.com> wrote:

> First, and I think you know this, recall that you're not including
> the Image object, but rather an HTML 'img' tag that will display the
> image.

Yes - in a ZPT referencing the image object automagically generates
that tag. I was hoping I could get the same result in a python script
without any 'gotchas'.  Apparently not...
 
> There could be any number of problems, but make sure that what you
> think has an Image object in context actually does. Are you sure that
> you're not being given a BLOB or a name?

The objects I'm iterating over are instances of an ObjectManager-based
class in a product I am building.  Each instance contains one Image
object, and that is what I am referencing.
So afaik I am referencing an image object, yes.

> To get the tag rendered from an Image, you can call the image. So put
> a pair of parentheses on the end of the name. This should be the
exact 
> same effect as the 'tag' method. (I do this by memory, so don't take
> it as gospel.)

Thanks, I hadn't thought of that - tried it, but still get the error.
It is reported as a TALES attribute error but I think that is just what
bubbles up from whatever error is generated in the python script when
it tries to do:

print(item.art_image())

> Finally, you should re-think doing HTML in a script. That's really
> what templates are for. You can use scripts for creating the list of 
> items or doing complex transformations, but actually creating the 
> HTML is not usually recommended.

Yes, I know - unless as some say the TAL gets 'too' complicated or
convoluted, in which case one 'should' move that logic to a python
script - though perhaps not HTML generation.  
Anyhow...here is my situation:

The number of items returned by a query will vary.
So I need to generate a table with a fixed number of columns and a
variable number of rows (last row not necessarily full).  That is, a
2-D output, not just a 1-D list like in all the TAL 'repeat' examples
I've ever seen or done so far.
It was something I could figure out how to code in python.
It was instant headache to try to code it in TAL.

I am doing it with an explicit control variable in python - to know
when to end one row and start another - and I don't know how that's
possible in TAL.  Is it?

If someone can give an example in TAL of iterating over a variable
number of items and generating a 2-D table with a fixed number of
columns that would indeed be a more appropriate solution.

thanks,
John S.



		
__________________________________ 
Do you Yahoo!? 
The all-new My Yahoo! - Get yours free! 
http://my.yahoo.com 
 



More information about the Zope mailing list