Não consigo inserir registros na tabela perfil_followers

28 views
Skip to first unread message

NiO Éter NO

unread,
Feb 9, 2023, 1:00:16 PM2/9/23
to Django Brasil
Olá Olá, saudações...
Sou novo no Django e estou com dificuldades para inserir registros na tabela perfil_followers.
Se alguém puder me ajudar, desde já agradecido.

Segue o código:
models.py
from django.db import models
from django.contrib.auth.models import User

class Perfil(models.Model):
    nome = models.CharField(max_length=255, null=False)
    telefone = models.CharField(max_length=15, null=True, blank=True)
    endereco_maps = models.CharField(max_length=255, null=True, blank=True)
    imagem_perfil = models.ImageField(null=True, blank=True, upload_to='uploads/fotoperfil/')
    imagem_capa = models.ImageField(null=True, blank=True, upload_to='uploads/fotocapa/')
    cor = models.CharField(max_length=10, default='#455A64')
    followers = models.ManyToManyField(User, blank=True, related_name='followers')

    usuario = models.OneToOneField(User, related_name='perfil', on_delete=models.CASCADE)

    @property
    def email(self):
        return self.usuario.email


views.py
def exibir_perfil(request, perfil_id):
    dados = {}
    dados['perfil'] = Perfil.objects.get(id=perfil_id)
    dados['perfil_logado'] = request.user.perfil
    dados['ja_eh_contato'] =  dados['perfil_logado'].followers.filter(id=dados['perfil'].id)
    dados['timeline'] = dados['perfil'].posts.all()
    dados['followers'] = dados['perfil'].followers.all()
    followers = dados['followers']

    if len(followers) == 0:
        dados['ja_eh_contato'] = False

    for follower in followers:
        if follower == request.user:
            dados['ja_eh_contato'] = True
            break
        else:
            dados['ja_eh_contato'] = False

    dados['number_of_followers'] = len(followers)
     

    return render(request, 'perfil.html', dados)

class AddFollower(LoginRequiredMixin, View):
    def post(self, request, perfil_id, *args, **kwargs):
        dados = {}
        dados['perfil'] = Perfil.objects.get(id=perfil_id)
        dados['perfil_logado'] = request.user
        dados['perfil_logado'].followers.add(request.user)

        return redirect('profile', id=dados['perfil'].id)

class RemoveFollower(LoginRequiredMixin, View):
    def post(self, request, perfil_id, *args, **kwargs):
        dados = {}
        dados['perfil'] = Perfil.objects.get(id=perfil_id)
        dados['perfil'].followers.remove(request.user)

        return redirect('profile', id=dados['perfil'].id)


perfil.html
<div class="mb-3">
                        <p>Seguidores: {{ number_of_followers }}</p>
                        {% if perfil_logado == request.user %}
                        {% else %}
                        {% if ja_eh_contato %}
                        <form method="POST" action="{% url 'remove-follower' perfil.id %}">
                            {% csrf_token %}
                            <button class="btn btn-outline-danger" type="submit">Deixar de Seguir</button>
                        </form>
                        {% else %}
                        <form method="POST" action="{% url 'add-follower' perfil.id %}">
                            {% csrf_token %}
                            <button class="btn btn-outline-success" type="submit">Seguir</button>
                        </form>
                        {% endif %}
                        {% endif %}
                       
</div>
Reply all
Reply to author
Forward
0 new messages