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 • Equip 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?

Juga una estona abans de marxar

ELS NOSTRES SERVEIS

Com et podem ajudar

Intel·ligència artificial

Agents d'IA, chatbots i assistents intel·ligents que automatitzen tasques i atenen els teus clients 24/7 per millorar l'eficiència del teu negoci.

Més info

Desenvolupament de programari

Aplicacions web, mòbils i d'escriptori, intranets, e-commerce, SaaS i plataformes de gestió dissenyades per a les necessitats concretes de la teva empresa.

Més info

Serveis cloud

Migració, infraestructura, hosting gestionat, alta disponibilitat i seguretat en Microsoft Azure i Amazon Web Services perquè el teu negoci escali sense límits.

Més info

Ciberseguretat i pentesting

Auditories de seguretat, test d'intrusió (pentesting) i protecció d'aplicacions, dades i infraestructura on-premise i cloud, amb hacking ètic i compliment normatiu.

Més info

Business Intelligence

Quadres de comandament i anàlisi de dades amb Power BI: integrem les teves fonts, dissenyem dashboards i KPIs i convertim les teves dades en decisions.

Més info

Automatització de processos

Automatitzem tasques repetitives i connectem les teves aplicacions amb n8n, Power Automate, Make i RPA, eliminant treball manual i augmentant la productivitat.

Més info

Formació per a empreses

Formem els teus equips en tecnologia amb criteri: desenvolupament web, bases de dades, Git, bones pràctiques i seguretat, automatització amb n8n, intel·ligència artificial per a empreses i creació de solucions d'IA amb Azure AI Foundry.

Més info

Auditoria de codi

Auditem el codi que creguis tu, el teu equip o una IA: et diem què està bé i què millorar, el securitzem i el deixem llest per a producció, web o app.

Més info

Generació d'imatges amb IA

Creem per tu les imatges que necessita el teu negoci amb intel·ligència artificial: producte, xarxes, publicitat, il·lustració i avatars. Tu ens dius què vols i t'ho lliurem llest per fer servir.

Més info

Generació de vídeos amb IA

Creem per tu vídeos amb intel·ligència artificial: promocionals, per a xarxes, presentadors virtuals, doblatge i animacions. Ens comptes la idea i t'ho lliurem muntat i llest per publicar.

Més info

Avatars conversacionals amb IA

Creem avatars conversacionals amb IA —humans digitals amb cara i veu— que atenen els teus clients i equips amb el coneixement de la teva empresa, a la teva web, monitors interactius, WhatsApp o Teams.

Més info

Màrqueting Online i IA

Google Ads, Meta Ads, LinkedIn Ads i posicionament en motors d'IA (GEO/AEO): captem clients i fem que la teva marca aparegui on et busquen, també a ChatGPT, Gemini i Perplexity.

Més info

Tens un projecte en ment?

Explica'ns la teva visió i la convertim en una solució de programari. Sigui quin sigui l'abast, fem realitat la teva idea.

Live Chat