Как использовать внешний ключ в условии html Django

Всем привет. Я начинающий в Python и у меня такой вопрос.

Кто-нибудь знает, почему это условие не работает? В h4 в lancamento.tipo отображается информация "Receita", но в условии не работает.

list.html

    <div class="list-group">
    {% for lancamento in object_list %}
        {% if lancamento.tipo == 'Receita' %}
    <a href="#" class="list-group-item list-group-item-success">
        <h4 class="list-group-item-heading">{{lancamento.tipo}}</h4>
        <p class="list-group-item-text">Descrição: {{lancamento.descricao}}</p>
        <p class="list-group-item-text">Valor: R$ {{lancamento.valor}}</p>
    </a>
        {% else %}
    <a href="#" class="list-group-item list-group-item-danger">
        <h4 class="list-group-item-heading">{{lancamento.tipo}}</h4>
        <p class="list-group-item-text">Descrição: {{lancamento.descricao}}</p>
        <p class="list-group-item-text">Valor: R$ {{lancamento.valor}}</p>
    </a>
        {% endif %}
    {% endfor %}

И models.py

class Usuario(models.Model):
    nome = models.CharField(max_length=255)
    cpf = models.CharField(max_length=11, unique=True)
    saldo = models.FloatField(default=0)

    def __str__(self):
        return self.nome


class Lancamento(models.Model):
    tipo = models.ForeignKey('Tipo', on_delete=models.CASCADE)
    nome_usuario = models.ForeignKey('Usuario', on_delete=models.CASCADE, default='')
    valor = models.FloatField()
    descricao = models.TextField()
    data_lancamento = models.DateTimeField(null=True, blank=True)

    class Meta:
        ordering = ['-data_lancamento']


class Tipo(models.Model):
    nome = models.CharField(max_length=255)

    def __str__(self):
        return self.nome

И views.py, использующий представления на основе классов

from django.shortcuts import render
from django.views.generic import ListView
from core.models import Lancamento

# Create your views here.

def index(request):
    return render(request, 'core/index.html')

class LancamentoList(ListView):
    model = Lancamento
    queryset = Lancamento.objects.all()

Вам нужно переименовать ваш шаблон в lancamento_list.html или вы можете указать template_name = '<app_name>/list.html', если хотите сохранить название 'list.html'

Мы могли бы явно указать представлению, какой шаблон использовать, добавив атрибут template_name к представлению, но в отсутствие явного шаблона Django выведет его из имени объекта

.

Для получения дополнительной информации вы можете ознакомиться с документацией: https://docs.djangoproject.com/en/4.0/topics/class-based-views/generic-display/

Вернуться на верх