class Article(models.Model):
def user_may_see_full_version(self, user):
# do something very sophisticated with the user
return [True/False whatever]
现在我想创建一个这样的模板:
{% for article in articles %}
{% if article.user_may_see_full_version request.user %}{{ article }}{% else %}{{article.title }}{% endif %}
{% endfor %}
但这不起作用,因为我无法将参数传递给方法......
有什么好的方法可以解决这个问题吗?
最佳答案
无法直接从模板将参数传递给方法。模板过滤器是最好的方法:
{% if article|user_may_see_full_version:user %}{{ article }}{% else %}{{article.title }}{% endif %}
过滤器的实现如下:
@register.filter()
def user_may_see_full_version(article, user):
return article.user_may_see_full_version(user)
关于python - Django 的方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3543603/