Изменен контекст вашего второго изображения, посмотрите, решит ли это проблему.
context = {'all_images': all_images, 'comments': comments}
Отредактировано:
Редактировать home.html
{% for image in all_images %}
<img src="{{ image.upload_image"}} />
{% for comment in comments %}
{% if comment.commented_image == image %}
{{ comment.comment_post }}
{% else %}
No comments available.
{% endif %}
{% endfor %}
{% endfor %}
Отредактировано (2 ): Для подсчета комментариев без активной выполните:
Редактировать views.py
# change
all_images = Image.objects.filter(imageuploader_profile=request.user)
...
for image in all_images:
images_comment_count = []
images_comment_count.append(Comments.objects.filter(commented_image_id=image.id, active=True).count())
...
context = {..., 'images_comment_count': images_comment_count}
Теперь отредактируйте home.html
{% load index %}
...
{% for image in all_images %}
<img src="{{ image.upload_image"}} />
{% for comment in comments %}
{% if comment.commented_image == image %}
{{ comment.comment_post }}
{% else %}
No comments available.
{% endif %}
{% endfor %}
<!-- Comment Count CHANGED THIS -->
{{ images_comment_count|index:forloop.counter0 }}
{% endfor %}
Редактировать 3:
да, это видно, потому что теперь мы будем создавать собственный фильтр тегов. 1) создайте каталог templatetags / в той же папке приложений 2) создайте файл с именем __init__.py
3) создайте другой файл с именем index.py
, мы заполним этот файл 4) добавьте указанный код в index.py
from django import template
register = template.Library()
@register.filter
def index(indexable, i):
return indexable[i]