Как использовать результат запроса в теге if statement в шаблоне Django

Можно ли использовать результат запроса в теге шаблона if statement

category.html (шаблон):

{% for ETF in ETFs %}     
    <td>{{ ETF.ticker }}</td>
    <td>{{ ETF.full_name }}
        {% if ETF.asset_class == "Inverse" %} <! –– this don't work ––> 
            <span class="alert-warning" >  Inverse </span>
        {% endif %} </td>   
{% endfor %}

views.py

def etf_list(request):
    filtered_results = ETF.objects.all()
    return render(request, "etf/category.html", {
        "ETFs": filtered_results,
        })

Здесь это не работает, потому что ETF.asset_class не является строковым объектом. Поэтому он не может быть равен другой строке. Есть ли другие способы заставить это работать? У меня есть таблица элементов в html и я хочу выделить некоторые элементы, которые имеют некоторые атрибуты модели.

models.py

class ETF(models.Model):
    ticker = models.CharField(max_length=6, blank=False, db_index=True, unique=True, primary_key=True) 
    asset_class = models.ForeignKey(Asset_class, on_delete=models.PROTECT, blank=True) 

class Asset_class_style(models.Model): 
    name = models.CharField(max_length=50, blank=False, unique=True)
    details = models.CharField(max_length=500, blank=True)
    slug = models.SlugField(default="", null=False, blank=True)
    class Meta:
        ordering = ["name"]
        
    def __str__(self):
        return self.name

    def save(self, *args, **kwargs): 
        self.slug = slugify(self.name)
        super().save(*args, **kwargs)

Вы не можете сравнить asset_class со строкой, но вы можете сравнить name атрибут, который является строкой. Итак:

{% for ETF in ETFs %}     
    <td>{{ ETF.ticker }}</td>
    <td>{{ ETF.full_name }}
        {% if ETF.asset_class.name == "Inverse" %} <! –– name attribute of assest_class ––> 
            <span class="alert-warning" >  Inverse </span>
        {% endif %} </td>   
{% endfor %}
Вернуться на верх