2013-02-16 12 views
5

Django zawiera doskonałe narzędzia do tworzenia niestandardowych tagów szablonów.Niestandardowy znacznik szablonu args i parser kwargs

Zarejestruj simple_tag i assignment_tag zarówno analizują zawartość przychodzącego tokena, jak i konwertuj je na args, kwargs poprawnie rozwiązane na swoje referencje (powiedzmy, że zmienna została przekazana).

Czy istnieje prosty sposób dodania tego zachowania do zwykłego tagu?

Potrzebuję użyć obiektu parser, więc muszę użyć zwykłego tagu, ale wygląda na to, że wkradam się za dużo kodu, aby odtworzyć parser args, kwargs.

@register.tag(name='snippet') 
def snippet_with_defaults(parser, token): 
    bits = token.split_contents()[1:] 
    bits # bits needs to be converted to args, kwargs easily 

muszę tag, który działa tak:

{% snippet foo=bar bar=baz %} 
This is a glorious django template tag! 
{% endsnippet %} 

Wydaje się, że jest to taki wspólny problem (AN args, kwargs parser argumentów znaczników), że powinien on mieć fragment django lub coś!

Odpowiedz

5

Znalazłem fragment, który może być w stanie Ci pomóc.

Tag that parses args and kwargs

+0

Simon, jesteś mężczyzną! Dziękuję Ci! –

+0

Bez obaw. Cieszę się, że mogłem pomóc. Mam nadzieję, że to odpowiedziała na twoje pytanie. –

+0

Nie miałem jeszcze okazji go przetestować, ale przyjmuję, zakładając, że działa! –

Powiązane problemy