Exibir resultado de pesquisa em template

53 views
Skip to first unread message

André Luis Soares

unread,
Sep 26, 2021, 11:31:20 AM9/26/21
to Django Brasil
Pessoal, bom dia!
Minha pergunta é bem básica:

Estou criando um sistema de agendamento de atividades. Estou tendo dificuldades para exibir, no template, o número de agendamentos realizados por cada pessoa.

Segue o código da view:
clientes_pesquisados = Agendamento.objects.values('cliente__nome').annotate(Count('id'))

dados = {
'numero_agendamentos' : clientes_pesquisados
}
return render(request, 'index.html', dados)

Código do template:
<ul class="list-group">
{% for agendamento in numero_agendamentos %}
<li class="list-group-item list-group-item-action d-flex justify-content-between">
{{ agendamento.nome }}
<span class="badge bg-danger rounded-pill"> {{agendamento.id__count}} </span>
</li>
{% endfor %}
</ul>

Eu não consigo mostrar só o nome do cliente e o respectivo somatório de agendamentos deste.

Se eu colocar dentro do <span> apenas {{agendamento}} ele me retorna todo a lista encontrada:

<QuerySet [{'cliente__nome': 'Alessandra Coelho da Silva', 'id__count': 1}, {'cliente__nome': 'Karen Robaino', 'id__count': 2}, {'cliente__nome': 'André Luis Soares da Silva', 'id__count': 1}]>

Já tentei os seguintes códigos:
agendamento.nome
agendamento.id__count
agendamento[0]
agendamento[1]
agendamento[1].id
agendamento.id__count[1]

Todos não mostraram nada. Sem erros, mas sem resultado também.

Alguém pode me ajuda? Só quero saber como eu exibo o resultado separado.
Ex.: André Luis 20

xico....@gmail.com

unread,
Sep 27, 2021, 7:49:04 AM9/27/21
to Django Brasil
Bom dia!

Cara, não posso te ajudar muito sem ver a estrutura dos teus models. Mas a que tudo indica, a propriedade que mostra o nome da pessoa é "cliente__nome", isso vendo o resultado do seu QuerySet.
Ficando assim:
{{ agendamento.cliente__nome }}

Espero que tenha ajudado.
Abraço e boa sorte!

André Luis Soares

unread,
Sep 28, 2021, 7:59:45 AM9/28/21
to Django Brasil
Bom dia!
Obrigado pela resposta!
Eu testei com o sua sugestão e continua igual, não mostra nada.
Meus Models estão assim:

class Clientes(models.Model):
nome = models.CharField(max_length=200)
data_nascimento = models.DateField()
altura = models.FloatField(max_length=4)
peso = models.FloatField(max_length=6)
endereco = models.CharField(max_length=300)
foto = models.ImageField(upload_to='fotos/', blank=True)
obs = models.TextField(max_length=400)

class Agendamento(models.Model):
cliente = models.ForeignKey(Clientes, on_delete=models.CASCADE)
start = models.DateField()
end = models.DateField()
hora = models.TimeField()
color = models.CharField(max_length=10)
local = models.CharField(max_length=200)
procedimento = models.CharField(max_length=150)
obs_agenda = models.TextField(max_length=400)


At.te
André Luis Soares

André Luis Soares

unread,
Sep 28, 2021, 7:59:49 AM9/28/21
to Django Brasil
Consegui resolver!

Meu código estava com um erro. Eu pus do jeito que você recomendou e deu certo.

Muito obrigado!!

A segunda-feira, 27 de setembro de 2021 à(s) 08:49:04 UTC-3, xico....@gmail.com escreveu:

André Luis Soares

unread,
Sep 28, 2021, 7:59:52 AM9/28/21
to Django Brasil
Muito obrigado, xico!
Deu certo. Tive que fazer um pequeno ajuste no meu código, pois tinha errado algo. Depois, usei a sua dica e deu certo.
A segunda-feira, 27 de setembro de 2021 à(s) 08:49:04 UTC-3, xico....@gmail.com escreveu:
Reply all
Reply to author
Forward
0 new messages