2011-11-30 13 views
7

Podstawy tego, co próbuję zrobić, to użyć "losowego" filtra, aby wybrać losowy przedmiot z mojej listy, ale potem chcę użyć tego losowo wybranego przedmiotu w wielu lokalizacjach.Store result of Jinja filter

Jak ustawić wynik filtra do zmiennej, której mogę użyć w wielu lokalizacjach.

Jeśli wielokrotnie wzywam filtr "losowy", jest małe prawdopodobieństwo, że będzie taki sam.

Zasadniczo co chcę zrobić:

{% set image = {{ images | random }} %} 

oczywiście to robi praca.

Odpowiedz

10

Użyj filtra bez {{}} ograniczników.

{% set image = images|random %} 

Jinja przechowuje globals i filters w dwóch różnych nazw (słowniki), co uniemożliwia ich stosowane są zamiennie.

2

| w Jinja po prostu przekazuje zmienną do funkcji. Wystarczy wywołać funkcję i to powinno działać:

{% set image = random(images) %}