Clase de Django: Cómo dar “likes” a páginas en tu blog | E26

Posted by

Curso de Django: Cómo ‘Likear’ Páginas en tu Blog | E26

Curso de Django: Cómo ‘Likear’ Páginas en tu Blog | E26

En este episodio del curso de Django, aprenderemos cómo agregar la funcionalidad de ‘likes’ a las páginas de nuestro blog. Los ‘likes’ son una forma de que los usuarios puedan expresar su aprecio por un contenido en línea, y es una característica común en redes sociales y blogs.

Para agregar la funcionalidad de ‘likes’ a nuestro blog en Django, primero necesitamos crear un modelo para almacenar la información de los ‘likes’. Luego, agregaremos una vista y una URL para manejar la acción de dar ‘like’ a una página. Finalmente, actualizaremos la plantilla de la página para mostrar el número de ‘likes’ y permitir a los usuarios dar ‘like’.

Para empezar, crearemos un nuevo modelo en nuestro archivo models.py para almacenar la información de los ‘likes’. Este modelo tendrá un campo ForeignKey que apunta al modelo de la página a la que se le dio ‘like’, y un campo de usuario que guarda la información del usuario que dio ‘like’.


class Like(models.Model):
    post = models.ForeignKey(Post, on_delete=models.CASCADE)
    user = models.ForeignKey(User, on_delete=models.CASCADE)

    def __str__(self):
        return f'{self.user.username} likes {self.post.title}'

Luego, crearemos una nueva vista en nuestro archivo views.py para manejar la acción de dar ‘like’ a una página. Esta vista verificará si el usuario ya dio ‘like’ a la página y, si no lo hizo, creará un nuevo objeto de ‘like’ en la base de datos.


def like_post(request, pk):
    post = get_object_or_404(Post, id=pk)
    liked = Like.objects.filter(post=post, user=request.user)

    if not liked:
        Like.objects.create(post=post, user=request.user)

    return redirect('post_detail', pk=pk)

Por último, actualizaremos la plantilla de la página para mostrar el número de ‘likes’ que ha recibido y permitir a los usuarios dar ‘like’. Para hacer esto, agregaremos un botón de ‘like’ que enviará una solicitud POST a nuestra vista de dar ‘like’.



    {% csrf_token %}
    

{{ post.likes.count }} likes

Con estos pasos, hemos agregado la funcionalidad de ‘likes’ a las páginas de nuestro blog en Django. Ahora los usuarios pueden expresar su aprecio por nuestro contenido y ver cuántos ‘likes’ ha recibido cada página. ¡Continúa aprendiendo más sobre Django en nuestro curso!