[Zope] How to make a script return rendered dtml

Tim Hicks tim@sitefusion.co.uk
Wed, 13 Jun 2001 17:14:50 +0100


----- Original Message -----
From: "Eric Balasbas" <ebalasba@bway.net>
To: "Tim Hicks" <tim@sitefusion.co.uk>
Cc: <zope@zope.org>
Sent: Wednesday, June 13, 2001 4:33 PM
Subject: Re: [Zope] How to make a script return rendered dtml


> I'm not sure if this is the best way to do it, but if you want to render a
> DTML method or DTML document inside a Python script, use the syntax:
>
> someDTMLMethod(_.None, _)

I tried this:

print context(_.None, _)

and got this error:

Error Type: NameError
Error Value: _

So I tried context.id(_.None,_) and got the same.  So I tried 'print
context(None,_)', with the same error resulting.  Finally, I have tried:

print context(None,)

and got

Error Type: KeyError
Error Value: standard_html_header

This last error at least seems like it's on the right track as it is parsing
through the text of the file.  What's going wrong, any idea?

thanks

tim

> Eric Balasbas
> Senior Developer
> eric@virtosi.com
>
> http://www.virtosi.com/
> Virtosi Ltd.
> Design -- Branding -- Zope
>
>
> On Wed, 13 Jun 2001, Tim Hicks wrote:
>
> > I have a ZClass (testclass) which subclasses DTMLDocument, and within
this
> > zclass, I have a script (python) called index_html.  Obviously, this
script
> > is called each time an instance of testclass is requested.  Based on the
> > presence of a query string, I want to either return the document_src
> > (although with a few modifications), or simply return the rendered
> > instance... by this, I mean have all the dtml tags that are in the
instance
> > evaluated.  So, my question is, how do I make Zope evaluate the dtml
tags?
> >
> > Here is what I have so far in my script:
> >
> > ------------
> > if context.REQUEST.QUERY_STRING == 'editor':
> >     print context.raw
> > else:
> >     print context
> >
> > return printed
> > ------------
> >
> > The 'else' statement simply gives me things like,
> >
> > &lt;dtml-var standard_html_header&gt;
> >
> > I also tried 'else: render(context)', which was simply a guess on my
part,
> > but I get a Zope error as follows:
> >
> > Error Type: AttributeError
> > Error Value: validate
> >
> > Can anyone enlighten me?
> >
> > Cheers
> >
> > tim
> >
> >
> > _______________________________________________
> > Zope maillist  -  Zope@zope.org
> > http://lists.zope.org/mailman/listinfo/zope
> > **   No cross posts or HTML encoding!  **
> > (Related lists -
> >  http://lists.zope.org/mailman/listinfo/zope-announce
> >  http://lists.zope.org/mailman/listinfo/zope-dev )
> >
>