如何在Django模板中使用大于运算符

问题描述 投票:1回答:1

我在模板中实现大于运算符时遇到问题。我在首页上有一个用户可以喜欢的帖子,并且在喜欢该帖子的count旁边显示了我朋友的个人资料图像。现在,如果有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 %}
python django
1个回答
1
投票

您的代码有点混乱,但是这里有一些指针:

您只想要五张图像,所以请在slicing the queryset中查看该图像:

friends_like_img = request.user.profile.friends.all().order_by('-id')[:5]

您的模板语法已全部使用,您可以阅读文档并习惯一些示例。在上下文中,您使用的是friends_img,而不是friends_like_img-上下文是模板所关心的。现在,由于我们只有五个图像,因此可以在模板中执行此操作:

{% for img in friends_img %}
  <img src="{{ img.profile_pic.url }}" ...>
{% endfor %}
{% if post.likes.count > 5 %}
  +
{% endif %}
© www.soinside.com 2019 - 2024. All rights reserved.