Hola chicos, me preguntaba cómo es que en mi bucle for mis imágenes aparecen cada vez en la página, pero en mi modelo emergente muestra la última imagen que el bucle for proporcionó para cada modelo. Incluso traté de hacer un html diferente que muestre los detalles de la vista completa para ver qué imagen muestra y todavía muestra la última imagen que dio el ciclo for, que es la última imagen que se publica.
{% extends 'navbar.html'%} {% load staticfiles%} {% block styles %} <link rel="stylesheet" type="text/css" href="{% static 'css/accounts/profile.css' %}" /> {% endblock %} {% block content %} <div class="row"> <div class="col-lg-4 col-md-6 col-xs-12" style="background-color:red"> <h1>Profile of {{user}}</h1> </div> <div class="col-lg-4 col-md-6 col-xs-12"> {% for post in posts%} <div class="thumbnail" style="background-color: yellow"> <img src="{{post.image.url}}" class="image" data-toggle="modal" data-target="#myModal"> <div class="middle"> <div class="text">{{post.title}}</div> </div> </div> <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> <h1 class="modal-title" id="myModalLabel"><a href="{% url 'posts:detail' post.slug%}">{{post.title}}</a></h1> <h6>Posted: {{ post.pub_date| timesince}}</h6> by <a href="{% url 'posts:userpost' post.author.id%}">{{post.author.username}}</a> </div> <div class="modal-body"> <div class="thumbnail"> <img src="{{post.image.url}}" class="image" data-toggle="modal" data-target="#myModal"> </div> <p>{{post.description|linebreaks|truncatechars:120}}</p> <p><a href="{% url 'posts:detail' post.slug%}" class="btn btn-primary" role="button">View</a></p> </div> </div> </div> </div> {% endfor %} </div> </div> {% endblock %}
Eso es porque tiene data-target="#myModal"
y debajo tiene <div class="modal fade" id="myModal"...
para cada imagen.
Entonces, cada div
tiene la misma id
. Para que funcione, debe hacer que sea único para cada imagen. Me gusta esto:
data-target="#myModal-{{ forloop.counter }}"> <!-- this will become #myModal-1 #myModal-2 #myModal-3 etc -->
y
<div class="modal fade" id="myModal-{{ forloop.counter }}" ... <!-- this will become myModal-1 myModal-2 myModal-3 etc -->