Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

221
Visualizações
Django: problemas con los botones Me gusta/Seguir

Quiero crear un sistema de me gusta/seguir en las publicaciones de los usuarios.

Debido a que a muchos usuarios les puede gustar una publicación y a los usuarios les pueden gustar muchas publicaciones, hice 2 modelos separados.

Modelos.py:

 class Question(models.Model): user= models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE) title = models.TextField() content = models.TextField() date_published = models.DateTimeField(auto_now_add=True) last_modified = models.DateTimeField(_('Last Edited'), auto_now=True) slug = models.SlugField(max_length=255) class Question_Follows(models.Model): question = models.ForeignKey(Question, on_delete=models.CASCADE) user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE) count = models.IntegerField(default=0)

vistas.py

 class QuestionDetailView(DetailView): model = Question slug = 'slug' template_name = "questions/question_detail.html" def get_context_data(self, **kwargs): context = super(QuestionDetailView, self).get_context_data(**kwargs) context['now'] = timezone.now() #obj= Question_Follows.objects.filter(id=question.id) #context['follow_count'] = Question_Follows.objects.filter(id='question.id') #obj.count <----- none of these have worked so far. return context

vista detallada.html:

 <div id="question_container"> <input type='hidden' id="{{ object.id }}" name="id"> <--- tried this as a way to get question id --> <h1>{{ object.title }}</h1> <p>{{ object.content }}</p> <p>Published: {{ object.date_published|date }}</p> <p>Date: {{ now |date }}</p> <button class="follow"><span id='follow-span'>Follow| <strong id='follow-count'>{{ follow_count }}</strong> </button> </span></button>

Tengo problemas para 'recopilar' la pregunta correcta una vez que se ha presionado el botón Me gusta y también para mostrar el número correcto de Me gusta para la pregunta, es decir, el recuento de seguimiento para cada pregunta.

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Algunos puntos:

  1. Si entiendo su intención correctamente, no debería necesitar count = models.IntegerField(default=0) en el modelo Question_Follows . Se crea una nueva fila en la tabla de la base de datos para este modelo cada vez que un usuario sigue una pregunta. ¿Puede un usuario seguir la misma pregunta más de una vez? Si no, entonces no necesita un campo de conteo.
  2. El número de seguidores para la pregunta debería estar disponible en la vista usando algo como:

    def get_context_data(self, kwargs):

     context = super(QuestionDetailView, self).get_context_data(**kwargs) context['now'] = timezone.now() context['follow_count'] = self.object.follows.count() return context

Tenga en cuenta que deberá agregar un nombre relacionado a su clave externa, por lo que será question = models.ForeignKey(Question, on_delete=models.CASCADE, related_name='follows') para que esto funcione.

  1. Es convencional nombrar modelos de Django en CamelCase (sin guiones bajos) y en forma singular, por lo que Question_Follows sería QuestionFollow .

Consulte mi comentario para obtener más preguntas relacionadas con los problemas de su plantilla. Sospecho que solo está utilizando el nombre de archivo de plantilla incorrecto.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda