On 2/11/06, Robert Wittams <[EMAIL PROTECTED]> wrote:
>
> Shannon -jj Behrens wrote:
> >>  You don't *need* recursion on templates for threaded messages like
> >>your example app, that's exactly the point :)
> >
> >
> > Julio, with all due respect for your programming prowess, I *like*
> > recursion.  It can often make hard problems easy, even when generating
> > HTML.
> >
> > Anyway, I figured out how to solve the problem *using recursion*, and
> > I blogged about it:
> > <http://jjinux.blogspot.com/2006/02/python-recursion-in-django-templates.html>.
> >  It works, but it's nowhere near as elegant as simply being able to
> > add a function to the template that I could call recursively. :-/
> >
> > Best Regards,
> > -jj
> >
>
> This is ridiculous. Something like this seems a lot easier to me...
>
> templatetags.py:
>
> register = template.Library()
>
> @register.inclusion_tag('comment')
> def show_comment(comment):
>     {'comment': comment}
>
>
> comment.html:
>
> {% load comments %}
> {% comment.subject %}
> {% comment.body %}
> {% for child in comments.children %}
>    {%show_comment child %}
> {% endfor %}
>
> page.html:
>
> {% show_comment comment %}
>
>
> The moral of the story : custom template tags aren't really an optional
> bit of the framework. If you don't learn how to use at least simple_tag
> and inclusion_tag, you will get annoyed quite often.

I think it's unfortunately that template writers have to resort to
Python just to package up a bit of HTML into a function, but that's
just my opinion.

-jj

Reply via email to