1

我有一个问题。我写了一个自定义模板标签,带有这样的函数签名——

def has_paid_for_article(article, request):

现在,在我的模板标签中,我有一个条件语句来确定用户是否可以下载文章(这取决于文章是否超过两年或登录用户已为文章付费)。这是片段-

{% if article|is_older_than_two_years %}
<span class="amp">&amp; </span>{% get_article_download_link article  %}
{% else %}
download
{% endif %}

上述代码段工作正常,但是我需要在条件语句中调用 has_paid_for_article() 函数。我尝试了以下方法来实现这一点-

 {% if article|is_older_than_two_years or article|request|has_paid_for_article %}

,

 {% if article|is_older_than_two_years or [article, request]|has_paid_for_article %}

这个在条件语句之外工作 -

{% if article|is_older_than_two_years or has_paid_for_article article request %} 

这里的正确语法是什么?另外,我已经阅读了有关该主题的其他帖子,我不能将此逻辑放在视图中。我不会详细介绍,但就其工作方式而言,这不是一个选择。谢谢!

4

1 回答 1

2

尝试

{% if article|is_older_than_two_years or article|has_paid_for_article:request %}

请参阅编写自定义模板过滤器

于 2014-02-17T13:30:43.403 回答