Comentarios en tu Proyecto Django

Guía para implementar un sistema de comentarios en Django con Bootstrap: modelo, vista, formulario y buenas prácticas de seguridad y UX.

25 ago 2025 • 4 min de lectura • Equipo Q2BSTUDIO

Inteligencia-Artificial-

En este artículo se explica paso a paso cómo añadir un sistema de comentarios en un proyecto Django utilizando un acordeón de Bootstrap para mostrar y ocultar los comentarios y un formulario para crearlos. El objetivo es ofrecer una guía clara para desarrolladores que necesiten implementar comentarios en posts y al mismo tiempo optimizar la experiencia de usuario. Q2BSTUDIO es una empresa de desarrollo de software a medida especializada en aplicaciones a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA y power bi, y ofrecemos soluciones completas para integrar funcionalidades como comentarios en entornos web profesionales.

Plantilla para visualizar post y lista de comentarios con acordeón de Bootstrap ejemplo básico usando etiquetas de plantilla Django y Bootstrap

<p> <a class=btn btn-primary data-toggle=collapse href=#collapseExample role=button aria-expanded=false aria-controls=collapseExample> Comments : {{post.cmt_count}} </a> </p> <div class=collapse id=collapseExample> {% for comment in post.comment_set.all %} <div class=card card-body> {{comment.content}} </div> {% endfor %} </div> <form method=POST> {% csrf_token %} <div class=col-md-8> {{ c_form }} </div> <input type=submit class=btn btn-secondary value=Comment /> </form>

Modelo para enlazar usuario y post con el comentario. Este modelo incluye relaciones con el usuario y con la publicación y un campo para el contenido

class Comments(models.Model): user = models.ForeignKey(User,on_delete=models.CASCADE) post = models.ForeignKey(UserPost,on_delete=models.CASCADE) content = models.CharField(max_length=500) def __str__(self): return self.content

Registro en el panel de administración Django para gestionar comentarios desde la interfaz administrativa

from django.contrib import admin from .models import UserPost,Comments admin.site.register(Comments)

Comandos de migración para crear las tablas en la base de datos

python manage.py makemigrations python manage.py migrate

Si aparece un error operativo por migraciones previas se puede reiniciar el historial de migraciones eliminando la base de datos sqlite y los archivos de migración de la aplicación manteniendo solo init y luego ejecutar las migraciones de nuevo. Eliminar db.sqlite3 y la carpeta de migraciones salvo init, luego hacer makemigrations y migrate.

Relación inversa para contar comentarios en el modelo UserPost. Añada un método que devuelva la cuenta de comentarios asociados

class UserPost(models.Model): title = models.CharField(max_length=150,null=False) content = models.TextField() author = models.ForeignKey(User,on_delete=models.CASCADE) created_at = models.DateTimeField(auto_now_add=True) image = models.ImageField(upload_to=get_image_path ) class Meta: ordering = ('-created_at',) def cmt_count(self): return self.comments_set.all().count() def __str__(self): return self.title

Vista para renderizar un post y procesar el formulario de comentarios. La vista valida que el usuario esté autenticado antes de crear un comentario y redirige de vuelta al post al finalizar

from .forms import PostForm,CommentForm def post_view(request,pk): post = get_object_or_404(UserPost,id=pk) if request.method == POST: if not request.user.is_authenticated: messages.warning(request, Please log in to send a message.) login_url = redirect(new_login).url + ?next= + request.path return redirect(login_url) c_form = CommentForm(request.POST) if c_form.is_valid(): instance = c_form.save(commit=False) instance.user = request.user instance.post = post instance.save() return redirect(post_view,pk=post.id) else: c_form = CommentForm() context = { post:post, c_form:c_form } return render(request,post_view.html,context)

Formulario para comentarios usando ModelForm. El campo content se presenta con un placeholder y clases CSS para integración con el diseño

from .models import Comments class CommentForm(forms.ModelForm): content = forms.CharField(label=, widget=forms.TextInput(attrs={placeholder: Write Your Thoughts on This Blog, class: mt-2 focus:ring-1 focus:ring-blue-500})) class Meta: model = Comments fields = [content]

Renderice el formulario en la plantilla donde se muestra el post para permitir a usuarios autenticados añadir comentarios

<form method=POST> {% csrf_token %} <div class=col-md-8> {{ c_form }} </div> <input type=submit class=btn btn-secondary value=Comment /> </form>

Buenas prácticas y consideraciones adicionales. Valide el contenido del comentario para evitar inyección de HTML malicioso, implemente paginación para listas largas de comentarios y utilice peticiones asíncronas AJAX para mejorar la experiencia usuario si desea evitar recarga completa de la página. En proyectos empresariales considere integrar sistemas de moderación automática basados en inteligencia artificial para detección de spam y lenguaje inapropiado.

Cómo puede ayudar Q2BSTUDIO. En Q2BSTUDIO diseñamos e implementamos funcionalidades completas como sistemas de comentarios integrados con identidad de usuario, cifrado y políticas de seguridad adecuadas. Ofrecemos servicios de software a medida y aplicaciones a medida que incluyen integración con servicios cloud aws y azure, soluciones de inteligencia artificial para empresas, agentes IA, servicios de inteligencia de negocio y visualización con power bi. Además proporcionamos consultoría en ciberseguridad para proteger datos de usuarios y asegurar la plataforma.

Palabras clave y posicionamiento. Este artículo incorpora términos relevantes para mejorar el posicionamiento en búsquedas relacionadas con aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA y power bi.

Resumen y cierre. Con los pasos anteriores puede implementar un sistema de comentarios funcional en Django usando la relación inversa para contar comentarios, un formulario para crearlos y un componente de Bootstrap para mostrarlos de forma elegante. Si necesita una solución a medida, optimizada y segura, contacte con Q2BSTUDIO para diseñar e integrar la solución completa acorde a sus requisitos.

¿UNA PAUSA?

Juega un momento antes de irte

NUESTROS SERVICIOS

Cómo podemos ayudarte

Inteligencia artificial

Agentes de IA, chatbots y asistentes inteligentes que automatizan tareas y atienden a tus clientes 24/7 para mejorar la eficiencia de tu negocio.

Más info

Desarrollo de software

Aplicaciones web, móviles y de escritorio, intranets, e-commerce, SaaS y plataformas de gestión diseñadas para las necesidades concretas de tu empresa.

Más info

Servicios cloud

Migración, infraestructura, hosting gestionado, alta disponibilidad y seguridad en Microsoft Azure y Amazon Web Services para que tu negocio escale sin límites.

Más info

Ciberseguridad y pentesting

Auditorías de seguridad, test de intrusión (pentesting) y protección de aplicaciones, datos e infraestructura on-premise y cloud, con hacking ético y cumplimiento normativo.

Más info

Business Intelligence

Cuadros de mando y análisis de datos con Power BI: integramos tus fuentes, diseñamos dashboards y KPIs y convertimos tus datos en decisiones.

Más info

Automatización de procesos

Automatizamos tareas repetitivas y conectamos tus aplicaciones con n8n, Power Automate, Make y RPA, eliminando trabajo manual y aumentando la productividad.

Más info

Formación para empresas

Formamos a tus equipos en tecnología con criterio: desarrollo web, bases de datos, Git, buenas prácticas y seguridad, automatización con n8n, inteligencia artificial para empresas y creación de soluciones de IA con Azure AI Foundry.

Más info

Auditoría de código

Auditamos el código que creas tú, tu equipo o una IA: te decimos qué está bien y qué mejorar, lo securizamos y lo dejamos listo para producción, web o app.

Más info

Generación de imágenes con IA

Creamos por ti las imágenes que necesita tu negocio con inteligencia artificial: producto, redes, publicidad, ilustración y avatares. Tú nos dices qué quieres y te lo entregamos listo para usar.

Más info

Generación de vídeos con IA

Creamos por ti vídeos con inteligencia artificial: promocionales, para redes, presentadores virtuales, doblaje y animaciones. Nos cuentas la idea y te lo entregamos montado y listo para publicar.

Más info

Avatares conversacionales con IA

Creamos avatares conversacionales con IA —humanos digitales con cara y voz— que atienden a tus clientes y equipos con el conocimiento de tu empresa, en tu web, monitores interactivos, WhatsApp o Teams.

Más info

Marketing Online e IA

Google Ads, Meta Ads, LinkedIn Ads y posicionamiento en motores de IA (GEO/AEO): captamos clientes y hacemos que tu marca aparezca donde te buscan, también en ChatGPT, Gemini y Perplexity.

Más info

¿Tienes un proyecto en mente?

Cuéntanos tu visión y la convertimos en una solución de software. Sea cual sea el alcance, hacemos realidad tu idea.

Live Chat