2013-02-16 2 views
5

Django viene fornito con alcuni ottimi strumenti per creare tag modello personalizzati.Argomenti di tag template personalizzati e parser kwargs

Registrare simple_tag e assignment_tag entrambi analizzano i contenuti del token in entrata e li convertono in args, kwargs correttamente risolti nei loro riferimenti (ad esempio una variabile è stata passata in).

C'è un modo semplice per aggiungere questo comportamento a un tag regolare?

Ho bisogno di usare l'oggetto parser quindi ho bisogno di usare un tag regolare, ma sembra che sto scavando un sacco di codice per riprodurre il 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 

Ho bisogno di un tag che funziona come questo:

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

Sembra che questo è un tema così comune (un args, kwargs parser per gli argomenti di tag) che dovrebbe avere un frammento Django o qualcosa!

risposta

5

Ho trovato uno snippet che potrebbe essere in grado di aiutarti.

Tag that parses args and kwargs

+0

Simon, sei l'uomo! Grazie! –

+0

Nessun problema. Sono contento di poterti aiutare. Spero che questo abbia risposto alla tua domanda. –

+0

Devo ancora avere la possibilità di testarlo ma accetterò assumendo che funzioni! –