問題があります。このような関数シグネチャを持つカスタム テンプレート タグを作成しました。
def has_paid_for_article(article, request):
ここで、テンプレート タグに、ユーザーが記事をダウンロードできるかどうかを判断する条件ステートメントがあります (これは、記事が 2 年以上経過しているか、ログインしているユーザーが記事の料金を支払ったかによって決まります)。これがスニペットです-
{% if article|is_older_than_two_years %}
<span class="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 %}
ここで正しい構文は何でしょうか? また、このトピックに関する他の投稿を読んだことがありますが、このロジックをビューに入れることはできません。詳しくは説明しませんが、仕組み上、これはオプションではありません。ありがとうございました!