В моем проекте django у меня есть две опции, которые используют строки запросов для определения вида списка, например:
<a href="{% url 'index' %}?list=shopping">Shopping</a>
<a href="{% url 'index' %}?list=chores">Chores</a>
Кроме того, я также хочу проверить, какой список был выбранпользователь и сделать его жирным шрифтом в пользовательском интерфейсе.Так что
{% if 'shopping' in request.GET.list or not request.GET.list %}
<b><a href="{% url 'index' %}?list=shopping">Shopping</a></b>
<a href="{% url 'index' %}?list=chores">Chores</a>
{% elif 'chores' in request.GET.list %}
<a href="{% url 'index' %}?list=shopping">Shopping</a>
<b><a href="{% url 'index' %}?list=chores">Chores</a></b>
{% endif %}
Что меня сейчас смущает, так это дополнение к Shopping
и Chores
. Я также хочу иметь две подопции, которые определяют порядок списка.New
и Old
, например.Мне кажется, что единственный способ сделать это - еще одно дублирование всего кода.
{% if 'new' in request.GET.list %}
{% if 'shopping' in request.GET.list or not request.GET.list %}
<b><a href="{% url 'index' %}?list=shopping&order=new">Shopping</a></b>
<a href="{% url 'index' %}?list=chores&order=new">Chores</a>
<b><a href="{% url 'index' %}?list=shopping&order=new">New</a></b>
<a href="{% url 'index' %}?list=shopping&order=old">Old</a>
{% elif 'chores' in request.GET.list %}
<a href="{% url 'index' %}?list=shopping&order=new">Shopping</a>
<b><a href="{% url 'index' %}?list=chores&order=new">Chores</a></b>
<b><a href="{% url 'index' %}?list=chores&order=new">New</a></b>
<a href="{% url 'index' %}?list=chores&order=old">Old</a>
{% endif %}
{% elif 'old' in request.GET.list %}
{# ... #}
{% endif %}
Я думаю, вы уже можете видеть, насколько безумным становится управление, и вам все равно придется сделать то же самое для оператора Old
if.Я действительно не знаю, что делать здесь, потому что я не вижу другого способа (1) знать, что должно быть смелым, а не жирным.И (2) Известно, должен ли каждый вариант начинаться с ?
или &
.