2013-02-16 18 views
5

Django, özel şablon etiketleri oluşturmak için bazı harika araçlarla birlikte gelir.Özel şablon etiketi ve kwargs ayrıştırıcısı

simple_tag ve assignment_tag kodunu hem gelen belirteç içeriğini ayrıştırın hem de referanslarına doğru bir şekilde çözümlenerek (bir değişkenin geçtiğini söyleyin) args, kwargs'a dönüştürün.

Bu davranışı normal bir etikete eklemek için basit bir yol var mı?

parser nesnesini kullanmam gerekiyor, bu nedenle normal bir etiket kullanmam gerekiyor, ancak args, kwargs ayrıştırıcısını çoğaltmak için çok fazla kodla doluyum gibi görünüyor. Bu gibi görünüyor

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

böyle ortak bir sorundur bir django parçacığını varsa veya gerektiği (bir args, etiket argümanlar için ayrıştırıcı 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 

böyle fonksiyonlar bir etiket ihtiyaç bir şey!

cevap

5

Size yardımcı olabilecek bir kod parçacığı buldum.

Tag that parses args and kwargs

+0

Simon, adamsın! Teşekkür ederim! –

+0

Endişeye gerek yok. Yardımcı olduğuma sevindim. Umarım bu soruya cevap vermiştir. –

+0

Henüz test etme şansım var ama çalıştığını kabul ediyorum! –

İlgili konular