python - Insert separator only if didn’t insert one before -


i have template variable product_list, queryset of product objects; product objects, in turn, have one-to-many field of track objects (reverse mapped track, of course), possible empty. want create list of tracks, grouped products this:

{% product in product_list %}     {% if not first product tracks %}         <li class="separator"></li>     {% endif %}      {% track in product.tracks %}         <li>{{track}}</li>     {% endfor %} {% endfor %} 

the question is, should write of if not first product tracks? tried ifchanged product inserts separator on first iteration (as changes "" "someproduct"). forloop.counter not usable here, possible first 2 products won’t have tracks.

one workaround change product_list track_list this:

track_list = track.objects.order_by('product__name') 

so can indeed use ifchanged. doable in case, i’m still interested in solution first method.

you should compose condition. looks simple, perhaps not asking for.

{% product in product_list %}     {% if not forloop.first , product.tracks %}         <li class="separator"></li>     {% endif %}      {% track in product.tracks %}         <li>{{track}}</li>     {% endfor %} {% endfor %} 

if not solution you, suggest cook data on view , send ready parse template, more easy.

{% product in product_list %}     {% if product.should_have_separator %}         <li class="separator"></li>     {% endif %}      {% track in product.tracks %}         <li>{{track}}</li>     {% endfor %} {% endfor %} 

in view append should_have_separator field dynamically products should have it:

product_list = product.objects..... is_the_first_product = true product in product_list:     is_the_first_product_with_tracks = ( is_the_first_product                                          , bool( product.tracks ) )     product.should_have_separator = not is_the_first_product_with_tracks     is_the_first_product = false 

Comments

Popular posts from this blog

android - MPAndroidChart - How to add Annotations or images to the chart -

javascript - Add class to another page attribute using URL id - Jquery -

firefox - Where is 'webgl.osmesalib' parameter? -