Я пытаюсь стилизовать различные теги своих сообщений в блоге, запуская условие if, которое просто проверяет имя тега и выполняет стиль, который я хочу для этого конкретного тега. Похоже, что условие должно проверяться как True, но выполняется только код в предложении else.
В приведенном ниже примере мой тег «Новости» должен иметь основной значок значка класса, но вместо этого он подпадает под else и применяет значок дополнительного значка.
Я пробовал прописные и строчные буквы. Я также пробовал со счетчиком и без него, который предназначен для других целей. Тем не менее, не повезло.
Шаблон:
{% for tag in object.tags.all %}
{% if forloop.counter|divisibleby:"2" %}
{% if tag == "News" %}
<li>
<span class="badge badge-primary">{{ tag }}</span>
</li>
{% else %}
<li>
<span class="badge badge-secondary">{{ tag }}</span>
</li>
{% endif %}
{% endif %}
{% endfor %}
При замене:
{% if tag == "News" %}
С:
{% if tag in object.tags.all %}
Это работает, и тег заполнит первый класс span, как и должен. Я считаю, что это говорит мне о том, что синтаксис, который я использую, правильный. По какой-то причине мое условие == не отображается как True, хотя должно быть.
Для дальнейшей проверки я запустил оболочку, чтобы убедиться, что я использую правильные имена тегов.
Tags.objects.all
Возвращено (опуская несколько для краткости):
<QuerySet [<Tags: Reviews> <Tags: News> <Tags: Tech>]>
Модель:
class Tags(model.Model):
name = models.CharField(max_length=70, default='general')
slug = models.SlugField(max_length=200, null=True, blank=True)
def __str__(self):
return self.name
Я использую общий вид DetailView для своего представления.
Спасибо!
Каково значение {{ tag }}, когда речь идет о вторичном значке?
«Новости» отображаются для вторичного значка. Каким-то образом он имеет значение False в начальном условном выражении и вместо этого выполняет блок else.