2010-10-05 95 views
8

我想从模板调用模型中的方法,并且得出结论:这不能完成。从模板调用模型的方法

这是我的代码

{% if request.user.is_authenticated %} 
    {% if a_story.is_story_liked(request.user.id) %} 
    <a class="story_like" data-id="{{ a_story.id }}" href="#">Like</a> 
    {% endif %} 
    {% else %} 
    <a class="story_like_login" data-id="{{ a_story.id }}" href="#">Like</a> 
{% endif %} 

第二行发生错误。 “is_story_liked”检查用户是否“喜欢”一个故事。如果没有,那么我会写一个相同的锚标签,但不同的类。

我有点难倒了这一个。我试图输出不同的类名:如果用户登录,如果用户没有登录,并且用户“喜欢”或不喜欢某篇文章/故事。

回答

21

django模板中的方法调用仅在它们没有参数时才起作用(例如,{% if request.user.is_authenticated %})。您可能需要将该功能放入呈现此模板的视图中,或将此功能置于custom template tag

+0

感谢提示...模板标签在这种情况下效果很好。 – iJK 2010-10-05 02:16:55

+0

user.is_authenticated实际上是属性而不是方法。 https://docs.djangoproject.com/en/2.0/ref/contrib/auth/#django.contrib.auth.models.User.is_authenticated – makerGeek 2018-02-12 13:25:37