[Zope-DB] writing a template to test if the sql worked
Laura.McCord at doucet-austin.com
Tue May 4 11:58:03 EDT 2004
I will look into what you suggested.
From: Charlie Clark [mailto:charlie at egenix.com]
Sent: Tuesday, May 04, 2004 10:55 AM
To: Laura McCord
Cc: zope-db at zope.org
Subject: Re: [Zope-DB] writing a template to test if the sql worked
get DTML and *all* HTML scripting stuff out of your head; I think they
the causes of lots of problems.
ZPTs are great because they encourage you to concentrate on your
presentation logic and break your procedural and data logic into
So what you should be doing is posting your form to a PythonScript which
does the error checking and informs the result template accordingly.
Your PythonScript will look something like this
request = context.REQUEST
errors = 
error_msg = ""
except SpecificError: """you will need to change this but I'm adding to
make a point"""
error_msg += "Sorry the pc could not be added to the database"
And your ZPT might look something like this:
<body tal:define="errors request/errors | nothing">
<!-- use a stylesheet for your formatting -->
tal:content="structure request/error">Error message will be printed
<p tal:condition="not: errors">
The pc, <strong tal:content="request/pcname">PCNAME</strong> was
successfully added to the database.</p>
Notice how inflexible tal:condition is. Although this can be annoying it
actually a "good thing". You really don't want control structures in
presentation code. Simple binary cases: "either this or that" is as much
Working like this will allow you to declare how specific things should
handled - there respective success and failure messages allowing you to
reuse the code more easily. Note this is also how Formulator works so it
might be time to give that a spin.
On 2004-05-04 at 17:31:33 [+0200], Laura McCord wrote:
> If I have an edit form and I click on edit after inserting the info
> into the fields I am redirected to a dtml method that I am using to
> call the zsql method and it tests if it was successful using the
> <dtml-try> and <dtml-except> conditons. This is the code that I am
> <body bgcolor="#e7e7e7">
> <font color="#0a4f72" size="4">
> <dtml-if name="create">
> <dtml-call name="add_pc_sql">
> The pc, <strong><dtml-var name="pcname">,</strong>
> was successfully added to the database.
> Sorry, the pc was not added to the database.
> I have been looking in the zope book and trying to learn how I could
> change this into a page template instead of a dtml method. Is there
> anything in page templates that can do the error checking like this
> dtml method? I wasn't sure if I would be using a <tal:condition> to
> achieve this.
More information about the Zope-DB