[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