Django — показать все изображения, назначенные для публикации

#python #django

#python #django

Вопрос:

Я создаю приложение для блога, и я хотел бы показать все изображения, которые были загружены в одно сообщение в блоге.

Вот мои Models.py:

 class Post(models.Model):
    title = models.CharField(max_length=100)
    content = RichTextField(blank=True, null=True)

class PostImage(models.Model):
     post = models.ForeignKey(Post, default=None, on_delete=models.CASCADE, related_name='postimages')
     image = models.ImageField(upload_to='gallery/')
  

Views.py

 class PostGalleryView(DetailView):

    model = Post
    template_name = 'blog/gallery.html'
    context_object_name = 'photos'
  

В шаблоне, если я туда помещу {{ photos.postimages }} , то он отобразится на странице: blog.PostImage.Нет
даже если эти 2 изображения загружены в конкретное сообщение в блоге. {{ photos.postimages.count }} показывает номер 2. Если я попытался выполнить цикл photos.postimages , он выдает ошибку: объект ‘RelatedManager’ не может быть повторен. Есть идеи, как я могу получить доступ к модели PostImage в шаблоне?

Ответ №1:

Попробуйте использовать цикл в своем шаблоне с all подобным:

 {% for photo in photos.postimages.all %}
    {{ photo.image }}
{% endfor %}
  

Комментарии:

1. это должно быть {{ photo.image }}