Jinjaifステートメントが正しく実行されない

james50428

Jinja + Flaskを使用しています

サンプルコードは次のとおりです。

# Flask
@app.route('/test/<int:counter>'):
    return render_templates('test.html', counter)

# Jinja
## test.html
{% extends "layout.html" %}
{% if counter|int == 1 %}
{% block scoreboard1 %}active1{% endblock %}
{% elif counter|int == 2 %}
{% block scoreboard2 %}active2{% endblock %}
{% elif counter|int == 3 %}
{% block scoreboard3 %}active3{% endblock %}
{% else %}
{% endif %}

## layout.html
<a href="/scoreboard/1" class="{% block scoreboard1 %}{% endblock %} item">1</a>
<a href="/scoreboard/2" class="{% block scoreboard2 %}{% endblock %} item">2</a>
<a href="/scoreboard/3" class="{% block scoreboard3 %}{% endblock %} item">3</a>

結果は次のとおりです(chrome devツールで検査します):

# URL -> 127.0.0.1/test/2
<a href="/scoreboard/1" class="active1 item">1</a>
<a href="/scoreboard/2" class="active2 item">2</a>
<a href="/scoreboard/3" class="active3 item">3</a>

期待される結果:

# URL -> 127.0.0.1/test/2
<a href="/scoreboard/1" class=" item">1</a>
<a href="/scoreboard/2" class="active2 item">2</a>
<a href="/scoreboard/3" class=" item">3</a>

ブロックはカウンター値に依存すると思いますが、代わりにすべてが変わります。

このバグがトリガーされた原因が気になります

bgse

blockこのような条件では、条件が満たされているかどうかに関係なく、block子テンプレートに含まれるとすぐに使用できなくなります。

あなたが望むものを達成するためのいくつかの方法があります(私が想定していることです)、例えばあなたはマクロを使うことができます

{% macro scoreboardlink(counter) %}
    <a href="/scoreboard/1" class="{% if counter|int == 1 %}active1{% endif %} item">1</a>
    <!-- you should look into url_for() instead of hardcoding your urls -->
    ...
{%- endmacro %}

次に、次のようにテンプレートでこれを使用します。

...
{{ scoreboardlink(counter) }}
...

ただし、構造layout.htmlをそのままにしたい場合は、もちろん、わずかに調整して、ブロック内に条件を配置することができます。

{% block scoreboard1 %}
    {% if counter|int == 1 %}active1{% endif %}
{% endblock %}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

if / elseステートメントが正しく実行されない

分類Dev

JavaScript 関数 if ステートメントが正しく実行されない

分類Dev

ステートメントが正しく実行されていない場合

分類Dev

JavaScriptゲーム内のifステートメントが正しく実行されない

分類Dev

PHPプリペアドステートメントが正しく実行されない

分類Dev

CASEステートメントがある場合にROLLUP行が正しく合計されない

分類Dev

Nunit3コンソールでテストが正しく実行されていない

分類Dev

ステートメントが正しく印刷されない場合

分類Dev

.netcoreユニットテストが正しく実行されていない

分類Dev

PHP-ループステートメントの構文が正しくないため、実行されません

分類Dev

(Python)ifステートメントが実行されない

分類Dev

Travisifステートメントが実行されない

分類Dev

Caseステートメントが実行されない

分類Dev

ステートメントが実行されない理由

分類Dev

if、elseif、elseステートメントは正しく実行されません

分類Dev

jQuery:価格が更新されない-正しく減算されない(switchステートメントを使用)

分類Dev

jcloudsScriptBuilderが実行するステートメントを正しく送信しない

分類Dev

動的SQLテキストでストアドプロシージャが正しく実行されない

分類Dev

Ifステートメントが正しく機能しないIfステートメントC#が渡されない

分類Dev

ifステートメントの変数が正しくカウントアップされない

分類Dev

caseステートメントとgroupbyが正しくグループ化されていない(postgresql)

分類Dev

Dockerコンテナ内でBashスクリプトが正しく実行されない

分類Dev

ifステートメントが正しく機能しない

分類Dev

Ifステートメントが正しく機能しない

分類Dev

PHPのifステートメントが正しく比較されていないようです

分類Dev

準備されたMYSQLステートメントが正しく機能しない

分類Dev

Goステートメントが並行して実行されないのはなぜですか?

分類Dev

Google Apps Sheetsifステートメントが実行されていない

分類Dev

Robloxifステートメントが実行されていない

Related 関連記事

  1. 1

    if / elseステートメントが正しく実行されない

  2. 2

    JavaScript 関数 if ステートメントが正しく実行されない

  3. 3

    ステートメントが正しく実行されていない場合

  4. 4

    JavaScriptゲーム内のifステートメントが正しく実行されない

  5. 5

    PHPプリペアドステートメントが正しく実行されない

  6. 6

    CASEステートメントがある場合にROLLUP行が正しく合計されない

  7. 7

    Nunit3コンソールでテストが正しく実行されていない

  8. 8

    ステートメントが正しく印刷されない場合

  9. 9

    .netcoreユニットテストが正しく実行されていない

  10. 10

    PHP-ループステートメントの構文が正しくないため、実行されません

  11. 11

    (Python)ifステートメントが実行されない

  12. 12

    Travisifステートメントが実行されない

  13. 13

    Caseステートメントが実行されない

  14. 14

    ステートメントが実行されない理由

  15. 15

    if、elseif、elseステートメントは正しく実行されません

  16. 16

    jQuery:価格が更新されない-正しく減算されない(switchステートメントを使用)

  17. 17

    jcloudsScriptBuilderが実行するステートメントを正しく送信しない

  18. 18

    動的SQLテキストでストアドプロシージャが正しく実行されない

  19. 19

    Ifステートメントが正しく機能しないIfステートメントC#が渡されない

  20. 20

    ifステートメントの変数が正しくカウントアップされない

  21. 21

    caseステートメントとgroupbyが正しくグループ化されていない(postgresql)

  22. 22

    Dockerコンテナ内でBashスクリプトが正しく実行されない

  23. 23

    ifステートメントが正しく機能しない

  24. 24

    Ifステートメントが正しく機能しない

  25. 25

    PHPのifステートメントが正しく比較されていないようです

  26. 26

    準備されたMYSQLステートメントが正しく機能しない

  27. 27

    Goステートメントが並行して実行されないのはなぜですか?

  28. 28

    Google Apps Sheetsifステートメントが実行されていない

  29. 29

    Robloxifステートメントが実行されていない

ホットタグ

アーカイブ