Jinja'da değişken ayarla


263

Jinja'da başka bir değişkenle bir değişkeni nasıl ayarlayabilirim bilmek istiyorum. Açıklayacağım, bir alt menüm var ve hangi bağlantının aktif olduğunu göstermek istiyorum. Bunu denedim:

{% set active_link = {{recordtype}} -%}

kayıt türü, şablonum için verilen bir değişkendir.


14
Buraya Google'dan gelenler: Burada soruyu soran kişi tarafından yapılan belirli sözdizimi hatası veya nasıl düzeltileceği yerine büyük olasılıkla etiket üzerindeki resmi belgelerleset ilgileneceksiniz, buradaki ve bağlantılı yinelenen adresteki en iyi yanıtlar budur .
Mark Amery

1
@MarkAmery Ty! Özellikle bu kısım jinja.palletsprojects.com/en/2.11.x/templates/… son derece yararlıdır.
ruohola

Yanıtlar:


533

{{ }}şablona değeri yazdırmasını söyler , bu sizin yapmaya çalıştığınız gibi ifadelerde çalışmaz. Bunun yerine, {% set %}şablon etiketini kullanın ve ardından değeri normal python kodunda yaptığınız gibi atayın.

{% set testing = 'it worked' %}
{% set another = testing %}
{{ another }}

Sonuç:

it worked

2
değişkenim
dikte

Silinen bir cevap, bu yanıta ek bilgi olarak hizmet eden bu bağlantıyı da içeriyordu: jinja.pocoo.org/docs/tricks/#highlighting-active-menu-items
Pascal

Harika bir açıklamaydı ve basitti. Love it :)
Faris Rayhan

global bir jinja değişkeni oluşturabilir ve bunu jinja değişkenini gömdüğümüz html dosyasında kullanabilir miyiz? @Soviut
Sri Test

50

Çok değişkenli atamalar için güzel bir kısaltma

{% set label_cls, field_cls = "col-md-7", "col-md-3" %}

3
Bu, soruyu cevaplamaya yaklaşmış gibi görünmüyor mu?
John R Perry

25

Sadece böyle kur

{% set active_link = recordtype -%}

7
Neden özellikle böyleyken (sondaki eksi işareti başlangıçta değil)? Bu, yanılmıyorsam sondaki boşlukları kaldırır, ancak öndeki boşlukları kaldırmaz. Hangi sona?
Leonid

14
Orijinal soruda ¯ \ _ (ツ) _ / ¯
Graham P Heath
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.