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

时间:2018-08-18 13:36:33

标签: python django django-templates django-tagging

我看到了类似的问题,但没有一个解决了我的问题。

我有一个简单的模板标签,如下所示:

@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 %}

我该怎么办?

1 个答案:

答案 0 :(得分:1)

我将为您设置模板,如下所示:

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

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

但是,这种直观地感觉上不像是模板标签……但是,我还不确定从您的问题中得出100%的用例。