我有一个名为'has_voted'的方法。它看起来像这样......
def has_voted(self, user):
# code to find out if user is in a recordset, returns a boolean
是否可以在模板中执行此方法?像object.has_vote(user)
?
答案 0 :(得分:2)
您只能调用没有参数的方法。因此{{ object.has_voted }}
如果方法被简单地定义为has_voted(self)
,那么@register.filter
def has_voted(obj, user):
return self.has_voted(user)
就可以了,但正如您所示,它不会是。{/ p>
将参数传递给方法的最佳方法是定义一个简单的模板过滤器。
{{ object|has_voted:user }}
并称之为:
{{1}}
答案 1 :(得分:0)
您可以,但前提是方法没有参数。像这样:
def has_voted(self):
{% if object.has_voted %}
如果你的方法有参数,你不能 - 这是Django宗教。