Konversi dari Django, saya terbiasa melakukan sesuatu seperti ini:
{% if not var1 %} {% endif %}
dan membuatnya bekerja jika saya tidak memasukkan var1 ke dalam konteks. Jinja2 memberi saya kesalahan yang tidak terdefinisi. Apakah ada cara mudah untuk mengatakan {% if var1 == None %}
atau serupa?
{% if variable is not defined %}
untuk menguji kebalikannya.{% if variable is defined and variable %}
akan juga memeriksa kekosongan{% if variable is defined %}
benar jika variabelnya adalahNone
.Karena
not is None
tidak diperbolehkan, itu artinya{% if variable != None %}
adalah satu-satunya pilihan Anda.
sumber
variable
selalu dievaluasiTrue
ketika tidak ada,{% if variable != None %}
sama dengan{% if variable %}
.None
penggunaan huruf kecilnone
{% if variable is not none %}
Anda juga bisa mendefinisikan variabel dalam template jinja2 seperti ini:
Dan kemudian Anda dapat menggunakannya seperti ini:
Kalau tidak (jika Anda tidak akan menggunakan
{% set step = 1 %}
) kode atas akan melempar:sumber
Dalam pengaturan Lingkungan, kami memiliki
undefined = StrictUndefined
, yang mencegah nilai yang tidak ditentukan dari diatur ke apa pun. Ini memperbaikinya:sumber
Pertimbangkan untuk menggunakan filter default jika itu yang Anda butuhkan. Sebagai contoh:
atau gunakan lebih banyak nilai fallback dengan "hardcoded" di akhir seperti:
sumber
{% if variable is defined %}
berfungsi untuk memeriksa apakah ada sesuatu yang tidak terdefinisi.Anda dapat pergi menggunakan
{% if not var1 %}
jika Anda default variabel Anda ke False misalnyasumber