Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

214
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda