[Zope-DB] TAL and empty sql-list

Charlie Clark charlie at egenix.com
Tue Mar 21 06:22:25 EST 2006


On 2006-03-20 at 12:01:55 [+0100], Jonas Nielsen <jonasn at mail.tele.dk> 
wrote:
> I have an sql statement that given a username it returns a project.
> 
> So my first question is: Is it possible to let the statement return a
> string instead of a list. i.e. 'project' instead of ['project'] ?
> 
> So, if call it from a page template, I can use
> 
> <div tal:content="python:here.project(uname=username)[0].project" />
> 
> But if the project method returns an empty list, this statement will
> fail (because of [0]).
 
> if I'm using, say, the Python Database API I would just call fetchone()
> on the cursor object. It is that functionality I am looking for.

Yes, it's very frustrating.

You've got two choices: either use a tal:repeat around your content which 
is not only more code but as you point out not always helpful. You can also 
use a Python statement or PythonScript to help you out:

<block tal:define="result python:here.project(uname=username)[0].project or 
''"></block>

Charlie


More information about the Zope-DB mailing list