2013-02-25 9 views
7

पर असाइन करना मैं एक टेम्पलेट चर के लिए ब्लॉकट्रांस ब्लॉक के आउटपुट को असाइन करना चाहता हूं।ब्लॉकट्रान आउटपुट को परिवर्तनीय

आप क्या कर सकते हैं कि इतने तरह ट्रांस टैग का उपयोग:

{% trans "Some text to translate" as foo %} 

हालांकि आप एक blocktrans टैग के साथ एक ही नहीं कर सकते। मैं इसे दस्तावेज़ीकरण में नहीं देखता हूं कि आप यह कर सकते हैं।

+0

बस कृपया पूछें: आप Django 1.9 के साथ पूरी तरह से काम करने वाले बेहतर व्यक्ति का उत्तर अपडेट कर सकते हैं। – webjunkie

+0

धन्यवाद। अपडेट किया गया। – LeeMobile

उत्तर

6

Django 1.9 blocktrans के लिए एक asvar घटक जोड़ा। An example from the docs:

{% blocktrans asvar the_title %}The title is {{ title }}.{% endblocktrans %} 
<title>{{ the_title }}</title> 
<meta name="description" content="{{ the_title }}"> 

दुर्भाग्य से, ऐसा लगता है कि इससे पहले कि कि जोड़ा गया है आप यह कर के किसी अन्य तरीके की जरूरत है।

4

ब्लॉकट्रान टैग के साथ यह संभव नहीं है।

हालांकि, आप ब्लॉकट्रान के आउटपुट को कैप्चर करने के लिए इस captureas templatetag का उपयोग कर सकते हैं।

{% captureas trans_value %} 
    {% blocktrans %} 
     This has some stuff in it which will be translated {{ foo }}. 
    {% endblocktrans %} 
{% endcaptureas %} 

{{ trans_value }} 
+0

आपके सुझाव के लिए धन्यवाद, लेकिन मुझे नहीं पता कि आपने कोड को कोड कहां रखा है। –

+0

@ olivier-pons आपको इसे एक [https://docs.djangoproject.com/en/1.9/howto/custom-template-tags/](कस्टम टेम्पलेट टैग) के रूप में परिभाषित करने की आवश्यकता है और फिर इसे टेम्पलेट – guival

+0

में लोड करें स्वीकृत उत्तर केवल django v 1.9+ में काम करता है। यह उत्तर <1.9 के लिए काम करता है। आप कह सकते हैं कि मेरा उत्पाद अपग्रेड किया जाना चाहिए, और आप सही हैं, लेकिन उन्नयन हमेशा निर्धारित नहीं किया जा सकता है। (भी, कैप्चरस केवल ब्लॉकट्रान के मुकाबले ज्यादा सामान्य है) –

संबंधित मुद्दे