Ola pessoal. Estou finalizando o modulo/curso do Django, e na parte de convidar contatos nao estou conseguindo visualizar os contatos convidados. Verificando os dados estão no DB, mas não consigo entender porque não esta me listando na pagina. Com certeza deve ser algum pequeno erro/detalhe.
Segue abaixo os códigos, se alguém puder dar um help eu agradeço.
MODELS:
from django.db import models
class Perfil(models.Model):
nome = models.CharField(max_length=255, null=False)
email = models.CharField(max_length=255, null=False)
telefone = models.CharField(max_length=15, null=False)
nome_empresa = models.CharField(max_length=255, null=False)
contatos = models.ManyToManyField('self')
def convidar(self, perfil_convidado):
Convite(solicitante=self, convidado=perfil_convidado).save()
class Convite(models.Model):
solicitante = models.ForeignKey(Perfil, related_name='convites_feitos')
convidado = models.ForeignKey(Perfil, related_name='convites_recebidos')
def aceitar(self):
self.convidado.contatos.add(self.solicitante)
self.solicitante.contatos.add(self.convidado)
self.delete()
VIEWS:
from django.shortcuts import render
from django.shortcuts import redirect
from perfis.models import Perfil, Convite
def index(request):
return render(request, 'index.html', {'perfis' : Perfil.objects.all(), 'perfil_logado' : get_perfil_logado(request) })
def aceitar(request, convite_id):
convite = Convite.objects.get(id=convite_id)
convite.aceitar()
return redirect('index')
def exibir(request, perfil_id):
perfil = Perfil.objects.get(id=perfil_id)
perfil_logado = get_perfil_logado(request)
ja_eh_contato = perfil in perfil_logado.contatos.all()
return render(request, 'perfis.html', {'perfil' : perfil, 'perfil_logado' : get_perfil_logado(request), 'ja_eh_contato' : ja_eh_contato })
def convidar(request, perfil_id):
perfil_a_convidar = Perfil.objects.get(id=perfil_id)
perfil_logado = get_perfil_logado(request)
perfil_logado.convidar(perfil_a_convidar)
# realizando redirecionamento
return redirect('index')
def get_perfil_logado(request):
return Perfil.objects.get(id=1)
HTML:
<!-- bloco novo de código que exibe os convites -->
<div class="panel panel-default">
{% with total_de_convites=perfil_logado.convites_recebidos.count %}
{% if total_de_convites %}
<div class="panel-heading">
<strong>Você tem {{ total_de_convites}} convite{{ total_de_convites|pluralize }} aguardando aprovação</strong>
</div>
<ul class="list-group">
{% for convite in perfil_logado.convites_recebidos.all %}
<li class="list-group-item">
{{ convite.solicitante.nome }}
<a href="{% url 'aceitar' convite.id %}" class="pull-right">aceitar</a>
</li>
{% endfor %}
</ul>
{% else %}
<div class="panel-body">
<p>Nenhum convite recebido :(</p>
</div>
{% endif %}
{% endwith %}
</div>
<!-- fim do bloco novo -->
Abs e obrigado.