У меня возникла проблема при реализации оператора "больше" в моем шаблоне. У меня есть сообщение на главной странице, которое может понравиться пользователям, и у меня отображаются изображения профилей моих друзей рядом с количеством, которым нравится сообщение. Теперь, если мой пост понравился 10 друзьям, я хочу, чтобы отображались только пять изображений профиля моих друзей, и в конце отображаемых изображений будет знак «+». Знак «+» означает, что есть больше друзей, которым нравится мой пост. Я пробовал это, но это не работает:
Модель:
class Profile(models.Model):
user = models.OneToOneField(settings.AUTH_USER_MODEL,on_delete=models.CASCADE,blank=True,null=True)
profile_pic = models.ImageField(upload_to='ProfilePicture/', default="ProfilePicture/user-img.png", blank=True)
friends = models.ManyToManyField('Profile', related_name="my_friends",blank=True)
class Post(models.Model):
poster_profile = models.ForeignKey(settings.AUTH_USER_MODEL,on_delete=models.CASCADE, blank=True,null=True)
likes = models.ManyToManyField('Profile', related_name='image_likes', blank=True)
Просмотр:
def home(request):
#all post in homepage
posts = Post.objects.filter(poster_profile=request.user)
#Show friend who liked Post
friends_like_img = request.user.profile.friends.all().order_by('-id')
context = {'posts':posts,'friends_img':friends_img}
return render(request, 'template.html', context)
Шаблон:
{% for post in posts %}
{% for img in friends_img %}
{% if img in post.likes.all > 20 %}
<img src="{{ img.profile_pic.url }}" height="25" width="25" alt="profile_pic">
{% else %}
<img src="{{ img.profile_pic.url }}" height="25" width="25" alt="profile_pic"> +
{% endif %}
{% endfor %}
{% endfor %}