Hi all. In the past, I once proposed a decorate template tag, but it was 
disapproved back then.
This would be another solution, to make the template language a lot more 
powerful.

1. First you define a decorator, for the behaviour you'd like to have. The 
"data" parameter indicates the receiving parameters.

{% define my_special_for "data" %}
    {% if data %}
        <ul>
        {% for i in data %}
            {% placeholder %}
        {% endfor %}
        </ul>
    {% else %}
        nothing found...
    {% endif %}
{% enddefine %}


This definition can be used as follows:

{% decorate my_special_for data %}
    <li>{{ i.value }}</li>
{% enddecorate %}


Not sure about the namings, but personally, I'm very convinced about this 
appoach. There shouldn't be too much logic in the template tags itself.

Another nice thing is that the <ul> and </ul> tags happen to be in exact 
the same scope which increases readability and the posibilities for 
automatic validation.

An extended version would create a second {% placeholder %} block for the 
"nothing found..." part.

If this is an acceptable appoach, I'm willing to contribute this to Django 
core, and write unit-tests and such.

-- 
You received this message because you are subscribed to the Google Groups 
"Django developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-developers+unsubscr...@googlegroups.com.
To post to this group, send email to django-developers@googlegroups.com.
Visit this group at http://groups.google.com/group/django-developers?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to