Я создаю веб-приложение, которое позволяет пользователям создавать временные рамки (например, для построения мира или романов).
В этом случае для исторического события пользователь может ввести следующие 8 вещей: начальный год / месяц / день / час и конечный год / месяц / день / час, при этом требуется только начальный год.
Приложение вставляет их в базу данных вместе с остальными деталями записи в два столбца: начальная дата, которая содержит начальный y / m / d / h и конечную дату, которая содержит конечный y / m / d / h.Эти строки отформатированы так: 'Y:M:D:H'
.Иногда они могут быть '203:None:None:None'
или '203:None:23rd:None'
и т. Д.
Я пришел к тому, чтобы отображать их в своем веб-приложении с помощью jinja, и до сих пор параметры, которые я должен отображать, очень длинные и будут простоочень большое количество ifs
/ elifs
.
Чтобы показать, к чему я стремлюсь, вот первая часть кода, которую я имею:
note: sy = startгод, еу = год окончания, см = месяц начала и т. д. и т. д.Они получены через sy,sm,sd,sh=era_entries_dict[era][5].split(':')
.Этот код находится внутри цикла for списка эр и отображает исторические записи в эрах.
{% if (sm == 'None') and (sd=='None') and (sh=='None') %}
{% if ey == 'None' %}
<h6 class="text-muted">{{ sy }}</h6>
{% else %}
{% if (em=='None') and (ed=='None') and (eh=='None') %}
<h6 class="text-muted">{{ sy }} > {{ ey }}</h6>
{% elif (ed=='None') and (eh=='None') %}
<p class="text-muted">{{ sy }} > {{ sm }} {{ sy }}</p>
По сути, если это только годы сами по себе (sy
или * 1023)* и ey
) он будет в теге h6, в противном случае - в теге абзаца.
Есть ли способ сделать это короче?Я ценю любые советы / советы.Спасибо!