Jinja: Cakupan tugas blok berbeda dengan tugas sebaris

Dibuat pada 27 Jun 2016  ·  5Komentar  ·  Sumber: pallets/jinja

Saya ingin menyetel variabel dalam templat anak yang akan dirender di templat induk. Jika saya menggunakan tugas blok, tidak ada yang diberikan. Jika saya menggunakan tugas sebaris, itu berfungsi seperti yang diharapkan. Saya menggunakan Jinja 2.8 dengan Python 2.

base.html :

{{ content }}

bad.html dengan tugas blok, tidak ada yang dirender:

{% extends 'base.html' %}
{% set content %}
Hello, World!
{% endset %}

good.html , ditampilkan dengan benar:

{% extends 'base.html' %}
{% set content = 'Hello, World!' %}
bug

Komentar yang paling membantu

Punya masalah ini juga. Tes sederhana:

{% extends "..." %}
...
{% set aaa = 'test' %}
{% set bbb %}
    <a href="/">bar</a>
{% endset %}
...
{% block some_block %}
 {{ aaa }} {# renders 'test' #}
 {{ bbb }} {# renders empty string #}
{% endblock %}

Semua 5 komentar

Punya masalah ini juga. Tes sederhana:

{% extends "..." %}
...
{% set aaa = 'test' %}
{% set bbb %}
    <a href="/">bar</a>
{% endset %}
...
{% block some_block %}
 {{ aaa }} {# renders 'test' #}
 {{ bbb }} {# renders empty string #}
{% endblock %}

Saya mendapatkan perilaku tidak konsisten yang sama dengan pernyataan 'dengan':

{% with %}
{% set something = 'werd' %}
{% set something_block %}
werd werd werd
{% endset %}
{% endwith %}
...
{{ something }} {# renders empty string #}
{{ something_block }} {# renders 'werd werd werd' #}

bug ini mungkin terkait?

Pernyataan with tidak seharusnya bekerja seperti itu, jadi itu disengaja. Saya tidak dapat mereproduksi masalah yang ditetapkan namun terlepas dari ini di master.

Tidak apa-apa, saya mengerti tentang apa masalah ini.

Berubah di 45b59b522a542c21611214b352df049a3b6dbcb4

Apakah halaman ini membantu?
0 / 5 - 0 peringkat