Re: [Zope] image objects into table via python script
Hello, --- J Cameron Cooper <jccooper@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
John Schinnerer a écrit :
Hello,
--- J Cameron Cooper <jccooper@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.
I gave you an exemple of nested repeats in a previous post. Now the only thing you need is to add a level of indirection between the result of the query and the TAL code. This is where you handle problems like number of cells per row. Instead of +-------+ +---------+ +-----+ | query | ---> | results | ---> | ZPT | +-------+ +---------+ +-----+ You want +-------+ +---------+ +--------+ +-----+ | query | ---> | results | ---> | script | ---> | ZPT | +-------+ +---------+ +--------+ +-----+ -- bruno bruno@modulix.org --
Hi there, Thanks bruno and all for your help - this last bit makes it clear to me how to deal with this. Of course between asking and getting this help, the requirements have now changed some...! And, I still need something like this table generation, thanks again! John S. --- bruno <bruno@modulix.org> wrote:
I gave you an exemple of nested repeats in a previous post. Now the only thing you need is to add a level of indirection between the result of the query and the TAL code. This is where you handle problems like number of cells per row.
Instead of +-------+ +---------+ +-----+ | query | ---> | results | ---> | ZPT | +-------+ +---------+ +-----+
You want +-------+ +---------+ +--------+ +-----+ | query | ---> | results | ---> | script | ---> | ZPT | +-------+ +---------+ +--------+ +-----+
-- bruno bruno@modulix.org --
__________________________________ Do you Yahoo!? The all-new My Yahoo! - Get yours free! http://my.yahoo.com
participants (2)
-
bruno -
John Schinnerer