有没有一种方法可以将返回值设置为django中的变量

时间:2020-10-15 02:19:43

标签: python django function django-forms django-templates

我有一个自定义模板标签,内容如下:

@register.simple_tag
def getLikesByUser(likedFilter, loggedInUserID): 
  likedPeople = likedFilter
  personLoggedIn = loggedInUserID
  for personLiked in likedPeople:
    if personLoggedIn == personLiked.id:
      return True
  return False

这将在模板中返回true或false,是否可以将返回值设置为模板中的变量?

这是这样的呼叫方式:

{% getLikesByUser Post.likes.filter request.user.id  %} 

我想在一个变量中使用它,这样我可以进一步检查是否为true,否则为false。

谢谢

1 个答案:

答案 0 :(得分:1)

我们有with可以在Django中设置变量。因此,您可以这样做:

{% load getLikesByUser %}
<body>
    {% with likes_by_user=Post.likes.filter|getLikesByUser:request.user.id %}
    
        {% if likes_by_user %}
            # Do sthg
        {% endif %}

    {% endwith %}
</body>