1

問題があります。このような関数シグネチャを持つカスタム テンプレート タグを作成しました。

def has_paid_for_article(article, request):

ここで、テンプレート タグに、ユーザーが記事をダウンロードできるかどうかを判断する条件ステートメントがあります (これは、記事が 2 年以上経過しているか、ログインしているユーザーが記事の料金を支払ったかによって決まります)。これがスニペットです-

{% 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