Size: a a a

Django [ru] #STAY HOME

2021 January 16

BK

Boris Krutskih in Django [ru] #STAY HOME
Попробую на словах. Есть страница со списком галерей, на галерее есть кнопка "смотреть", по нажатию открывается поп-ап с кол-вом фоток которые состоят именно в конкретной галерее.
Как у меня сейчас:
{% for gallery in photo_gallery %} # Здесь выводится список галерей
  {% for item in photo_gallery_before_after %} # Здесь должны выводиться фото которые принадлежат к этой галерее
  {% endofor %}
{% end for %}

в views.py у меня выглядит таким образом
class PhotoGalleryListView(ListView):
   model = PhotoGallery
   template_name = 'gallery/photo_gallery.html'

   def get_context_data(self, *, object_list=None, **kwargs):
       context = super(PhotoGalleryListView, self).get_context_data(**kwargs)

       context['consult_form'] = ConsultForm()
       context['categories'] = Category.objects.filter(published=True)
       context['photo_gallery'] = PhotoGallery.objects.filter(published=True)
       context['photo_gallery_before_after'] = UploadPhoto.objects.all()

       return context
источник

BK

Boris Krutskih in Django [ru] #STAY HOME
Вывести я пытаюсь таким образом item.before_photo, но оно берет фото не от этой галереи, а от первой которая попалась
источник

BK

Boris Krutskih in Django [ru] #STAY HOME
Boris Krutskih
Вывести я пытаюсь таким образом item.before_photo, но оно берет фото не от этой галереи, а от первой которая попалась
источник

N

Nire in Django [ru] #STAY HOME
Потому что ты выше в форе указал другое название для перебора
источник

BK

Boris Krutskih in Django [ru] #STAY HOME
Nire
Потому что ты выше в форе указал другое название для перебора
так правильно, выше перебирается галерея, а ниже фото в этой галерее. Вот так вот в модельках
class PhotoGallery(models.Model):
   title = models.CharField(max_length=255, unique=True, verbose_name='Название')
   preview_image = ThumbnailerImageField(verbose_name='Обложка')

   published = models.BooleanField(default=True, verbose_name='Опубликовано')

   def __str__(self):
       return f"{self.title}"

   class Meta:
       verbose_name_plural = 'Фото галерея'


class UploadPhoto(models.Model):
   post = models.ForeignKey(PhotoGallery, default=None, on_delete=models.CASCADE, verbose_name='Изображение')
   before_image = ThumbnailerImageField(verbose_name='До')
   after_image = ThumbnailerImageField(verbose_name='После')
источник

N

Nire in Django [ru] #STAY HOME
Boris Krutskih
так правильно, выше перебирается галерея, а ниже фото в этой галерее. Вот так вот в модельках
class PhotoGallery(models.Model):
   title = models.CharField(max_length=255, unique=True, verbose_name='Название')
   preview_image = ThumbnailerImageField(verbose_name='Обложка')

   published = models.BooleanField(default=True, verbose_name='Опубликовано')

   def __str__(self):
       return f"{self.title}"

   class Meta:
       verbose_name_plural = 'Фото галерея'


class UploadPhoto(models.Model):
   post = models.ForeignKey(PhotoGallery, default=None, on_delete=models.CASCADE, verbose_name='Изображение')
   before_image = ThumbnailerImageField(verbose_name='До')
   after_image = ThumbnailerImageField(verbose_name='После')
источник

N

Nire in Django [ru] #STAY HOME
Ещё смешивание различных кейсов выглядит как кал
источник

BK

Boris Krutskih in Django [ru] #STAY HOME
ну вот тут я и застрял) как правильно вывести
источник

N

Nire in Django [ru] #STAY HOME
Boris Krutskih
так правильно, выше перебирается галерея, а ниже фото в этой галерее. Вот так вот в модельках
class PhotoGallery(models.Model):
   title = models.CharField(max_length=255, unique=True, verbose_name='Название')
   preview_image = ThumbnailerImageField(verbose_name='Обложка')

   published = models.BooleanField(default=True, verbose_name='Опубликовано')

   def __str__(self):
       return f"{self.title}"

   class Meta:
       verbose_name_plural = 'Фото галерея'


class UploadPhoto(models.Model):
   post = models.ForeignKey(PhotoGallery, default=None, on_delete=models.CASCADE, verbose_name='Изображение')
   before_image = ThumbnailerImageField(verbose_name='До')
   after_image = ThumbnailerImageField(verbose_name='После')
Отправь через нормальный сервис обмена кодом, с телефона ничего не понятно
источник

BK

Boris Krutskih in Django [ru] #STAY HOME
Nire
Отправь через нормальный сервис обмена кодом, с телефона ничего не понятно
источник

BK

Boris Krutskih in Django [ru] #STAY HOME
Думаю у меня проблема в views.py
 context['photo_gallery_before_after'] = UploadPhoto.objects.all()
источник

N

Nire in Django [ru] #STAY HOME
Boris Krutskih
Думаю у меня проблема в views.py
 context['photo_gallery_before_after'] = UploadPhoto.objects.all()
Ну смотря что хочешь
источник

BK

Boris Krutskih in Django [ru] #STAY HOME
Nire
Ну смотря что хочешь
Да всё, то же)) вот есть айтемы, у каждого из них внутри свои фотки https://i.imgur.com/LCZjRdU.png
источник

N

Nire in Django [ru] #STAY HOME
Boris Krutskih
Думаю у меня проблема в views.py
 context['photo_gallery_before_after'] = UploadPhoto.objects.all()
Ну да, ты же галереи хочешь
источник

BK

Boris Krutskih in Django [ru] #STAY HOME
Nire
Ну да, ты же галереи хочешь
Ну вот здесь и застрял, как мне правильно фильтрануть)
источник

BK

Boris Krutskih in Django [ru] #STAY HOME
Если в ListView делать выброс
context['photo_gallery_before_after'] = UploadPhoto.objects.all()

оно берет со всех галерей
источник

BK

Boris Krutskih in Django [ru] #STAY HOME
а как правильно в ListView отфильтровать, по pk галереи немогу разобраться
источник

N

Nire in Django [ru] #STAY HOME
Я бы в контексте передал photogallery.objects.filer published true. Затем их распихал
источник

N

Nire in Django [ru] #STAY HOME
У аплоад имейдж в поле пост выстави related name, оно будет ключом ко всем фото данной галереи.
источник

N

Nire in Django [ru] #STAY HOME
Ну и затем ты сможешь вытаскивать все фото галереи через photogalery.photos.all в шаблоне
источник