Django - 在 if 语句中使用模板标签

Django - use template tags in if statement

我看到了类似的问题,但是 none 解决了我的问题。

我有一个像这样的简单模板标签:

@register.simple_tag
def liked_by_user(post_id, user):
    try:
        PostModel.objects.get(pk=post_id).like_set.get(user=user)
        return True
    except:
        return False

我想在这样的 if 语句中使用它:

{% if liked_by_user post.pk request.user %}
        doing somethin...
    {% else %}
        doing somethin...
{% endif %}

我能做什么?

我会像这样设置你的模板:

{% liked_by_user "post_id" "request.user" as liked_by_user_flag %}

{% if liked_by_user_flag %} 
   doing somethin...
{% else %} 
   doing somethin...
{% endif %}

但是,这种直觉上感觉不像是模板标签这种情况......但我还不能 100% 确定你的用例来自你的问题.