Здравствуйте.
Появилась проблема большого ветвления в темплейтах. Выглядит это так:
{% if shop}
{% if active_first_category %}
<div class="left-block border-block left">
<div class="left-block-content">
{% for category in active_first_category.producttypessecondlayer_set.all %}
<p><a href= "{% url 'site:supermarket_second_products_list' city.slug supermarket.slug active_first_category.slug category.slug %}"> {{ category }} </a></p>
{% endfor %}
</div>
</div>
{% else %}
<div class="left-block border-block left">
<div class="left-block-content">
{% for category in categories %}
<p><a href= "{% url 'site:supermarket_first_products_list' city.slug supermarket.slug category.slug %}"> {{ category }} </a></p>
{% endfor %}
</div>
</div>
{% endif %}
{% else %}
{% if active_second_category %}
<a href= "{% url 'site:second_products_list' city.slug active_first_category.slug active_second_category.slug %}"> {{ active_second_category }}</a>
</div>
{% elif active_first_category %}
<div class="clear"></div>
<div class="left-block border-block left">
<div class="left-block-content">
{% for category in active_first_category.producttypessecondlayer_set.all %}
<p><a href= "{% url 'site:second_products_list' city.slug active_first_category.slug category.slug %}"> {{ category }} </a></p>
{% endfor %}
</div>
</div>
{% else %}
<div class="clear"></div>
<div class="left-block border-block left">
<div class="left-block-content">
{% for category in categories %}
<p> <a href= "{% url 'site:first_products_list' city.slug category.slug %}"> {{ category }} </a></p>
{% endfor %}
</div>
</div>
{% endif %}
{% endif %}
Всё это безобразие левая панелька с навигацией. Практически для всех кейсов вид сайта одинаков: слева панель навигации, в центре список продуктов.
Соответственно обрабатываются все эти случаи одной view и одним шаблоном, но урл у всех этих случаев разный и тут возникает проблема.
Приходится делать огромные ветвления заменяя только {% url %} tag. Как адаптировать я не могу понять, так же не знаю по какому запросу искать такую проблему. По ощущениям это не верный вариант решения проблемы.
Если у меня 9 урлов имеют схожую механику, делать 9 ветвлений в одном шаблоне просто невозможно. А разнести в разные, так ведь логика у них одинаковая.
Как быть?
Updated 30 Nov. 2015, 16:45 by k2rush.