[Zope] checking for elements in a list

Peter Bengtsson peter at fry-it.com
Sun Dec 4 06:29:55 EST 2005


On 12/4/05, J Cameron Cooper <zope-l at jcameroncooper.com> wrote:
> Christopher Rivard wrote:
> > Hello,
> >
> > I'm am trying to check for the membership of items in a list and think
> > I'm missing something.
> > How is this done in dtml?
> >
> > List allids: [15,16,17,18]
> >
> > Check for multiple items in the list:
> >
> > <dtml-in allids prefix="loop">
> > <dtml-if expr="loop_item == 17">
> > something
> > <dtml-elif expr="loop_item == 17 and loop_item != 18">
> > doesn't work
> > </dtml-if>
> > </dtml-in>
> >
> > The goal is to check for combinations:
> > 17 and not 18
> > 18 only
> > 17 only
> > 17 and 15
> > 18 and 16
> > ...combinations.
> >
> > I don't think that I really want to loop through the list, just want to
> > check membership in the list.
>
> In Python, you can simply ask::
>
>    17 in allids
>
>    18 not in allids
>
> and so forth as boolean expressions.
>
He can do this in DTML too.
<dtml-if "17 in allids">
  you're here!
</dtml-if>

> Just make sure that the elements of the list you're getting are what you
> think they are. If you ask about the integer 17 and the list actually
> has a string "17" they won't match. You can either adjust what you test
> or use something like the 'int' function to "cast".
>
>                 --jcc
> --
> Building Websites with Plone
> http://plonebook.packtpub.com/
> _______________________________________________
> Zope maillist  -  Zope at zope.org
> http://mail.zope.org/mailman/listinfo/zope
> **   No cross posts or HTML encoding!  **
> (Related lists -
>  http://mail.zope.org/mailman/listinfo/zope-announce
>  http://mail.zope.org/mailman/listinfo/zope-dev )
>


--
Peter Bengtsson,
work www.fry-it.com
home www.peterbe.com
hobby www.issuetrackerproduct.com


More information about the Zope mailing list