TIMEX
TIMEX

Reputation: 272372

In Django's template system, how do I make it to do different things sometimes?

{% for p in posts %}
    <div style="width:50px;">
    blah
    </div>
{% endfor %}

However, what if I want the div to be 100px 75% of the time? 25% of the time? Randomized.

Upvotes: 0

Views: 755

Answers (3)

Spacedman
Spacedman

Reputation: 94317

Logic does not go into templates.

Solution: write a new template tag that returns a random number, and use that for the width.

http://docs.djangoproject.com/en/1.2/howto/custom-template-tags/

Your template would then look like:

{% for p in posts %}
    <div style="width:{% myrandomtag 0 100 %}px;">
    blah
    </div>
{% endfor %}

Or whatever. Put your required logic in the python code for the tag.

Upvotes: 2

aodj
aodj

Reputation: 2353

You can use Django's cycle method:

{% for o in some_list %}
<tr class="{% cycle 'row1' 'row2' %}">
    ...
</tr>
{% endfor %}

Upvotes: 0

Marcis
Marcis

Reputation: 4617

random filter should do the thing

Upvotes: 2

Related Questions