Извиняюсь за неясное название, я не уверен, как сформулировать мой вопрос в нескольких словах.
В принципе, на мой взгляд, у меня есть переменная, содержащая список объектов (фотографий):
photos = Photo.objects.all()
В моем шаблоне у меня есть цикл for для этих объектов, где я отображаю атрибуты (например, photo.author).Я хотел бы иметь некоторую логику для отдельных экземпляров фотографий:
all_likes = Like.objects.all()
for photo in photos:
pic_likes = all_likes.filter(photo_id=id)
like_count = len(pic_likes)
liker = pic_likes.filter(liker_id=request.user.id)
if len(liker) != 0:
liked=True
, но использование цикла for внутри представления приводит к ошибке
int() argument must be a string, a bytes-like object or a number, not 'builtin_function_or_method'
Как мне поступить слогика для экземпляров фотографий, но не для списка объектов в целом?
Моя модель "Фото" выглядит следующим образом:
class Photo(models.Model):
image = models.ImageField(upload_to='uploaded_images', blank=True)
title = models.CharField(max_length=128)
author = models.ForeignKey(settings.AUTH_USER_MODEL, default = 1)
slug = models.SlugField()
likes = models.ManyToManyField(User, related_name='likes')
description = models.CharField(max_length=1000, blank=True)
, и моя похожая модель:
class Like(models.Model):
liker = models.ForeignKey(User, related_name='liker')
photo = models.ForeignKey(Photo, related_name='photo')
liked = models.BooleanField()