1. ホーム
  2. python

[解決済み] Jinja2で文字列を大文字/小文字に変換するには?

2023-06-20 10:19:20

質問

私が作業しているJinjaテンプレートで、文字列を大文字に変換しようとしています。

の中で テンプレートドキュメント を、私は読みました。

upper(s)
    Convert a value to uppercase.

そこで、こんなコードを書いてみました。

{% if student.department == "Academy" %}
    Academy
{% elif  upper(student.department) != "MATHS DEPARTMENT" %}
    Maths department
{% endif %}

しかし、このようなエラーが発生します。

UndefinedError: 'upper' is undefined

では、Jinja2で文字列を大文字に変換するにはどうすればよいのでしょうか。

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

フィルタは |filter 構文 :

{% elif  student.department|upper != "MATHS DEPARTMENT" %}
    Maths department
{% endif %}

を使うか、あるいは str.upper() メソッド :

{% elif  student.department.upper() != "MATHS DEPARTMENT" %}
    Maths department
{% endif %}

Jinjaの構文はPython-です。 のように であり、実際のPythonではありません :-)