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.
Robert