1. ホーム
  2. python

[解決済み] Djangoのテンプレートで文字列が他の文字列を含んでいるかどうかを確認する方法

2023-05-11 13:16:04

質問

これはテンプレート内の私のコードです。

{% if 'index.html' in  "{{ request.build_absolute_uri  }}" %} 
    'hello'
{% else %}      
    'bye'
{% endif %}

現在、私のurlの値は "http://127.0.0.1:8000/login?next=/index.html"

にもかかわらず "index.html" が文字列中にあっても、バイと表示されます。

同じコードをpythonのシェルで実行すると、うまくいきます。何が間違いなのかよくわかりません。

どのように解決するのですか?

余分な {{...}} タグと "..." の周りにある引用符 request.build_absolute_uri で囲むと、うまくいきました。

すでに {% if %} タグの中にあるので request.build_absolute_uri で囲む必要はありません。 {{...}} タグを使用します。

{% if 'index.html' in request.build_absolute_uri %}
    hello
{% else %}
    bye
{% endif %}

引用符で囲んでいるため、文字通り文字列 "{{ request.build_absolute_uri }}" という文字列を検索しており、意図した評価済み Django タグを検索しているわけではありません。