2010-08-14 15 views
36

के साथ वर्णों की सीमा संख्या मैं वस्तुओं की सूची पर विवरण के पहले 255 वर्णों को आउटपुट करने का प्रयास कर रहा हूं और इसे प्राप्त करने के लिए एक विधि की तलाश में हूं।Django टेम्पलेट फ़िल्टर

उदाहरण: मेरे पास एक चर है जिसमें 300 या तो वर्ण हैं।

मैं इस तरह कि चर, {{ my_variable|characterlimit:255 }}

फोन और यह केवल पहले 255 कि चर के पात्रों लौट आते हैं।

यदि यह टैग मौजूद नहीं है, तो मैं इसे आसानी से बनाउंगा (और सुझाव देता हूं कि यह डीजेंगो में जाता है), लेकिन मैं यह सुनिश्चित करना चाहता था कि ऐसा करने में समय लगे। धन्यवाद!

उत्तर

62

हैं "my_variable" एक स्ट्रिंग है, तो आप slice filter, जो वर्णों की एक सूची के रूप में स्ट्रिंग व्यवहार करता है का लाभ ले सकते। यदि यह शब्दों का एक सेट है, तो किसी न किसी समतुल्य truncatewords है - लेकिन यह आपकी ज़रूरत की तरह नहीं है।

truncatewords भी संक्षिप्त परिणाम के अंत में एक एलिप्सिस ... जोड़ता है।

उपयोग जैसा

{{ my_variable|slice:":255" }} 
+0

मैं इस एक स्ट्रिंग – northben

0

दुर्भाग्य से यह अस्तित्व में नहीं है। इसे लागू करने के लिए कदम हैं, लेकिन यह अभी भी डिजाइन चरण में है (अच्छी तरह से लागू, लेकिन डिज़ाइन निर्णय की प्रतीक्षा कर रहा है), जैसा कि here वर्णित है।

उस टिकट से जुड़े पैच में कार्यान्वयन शामिल है।

7

कुछ होगा तो आप शब्द से काटना चाहते हैं, मानक टेम्पलेट टैग का उपयोग करके इस https://docs.djangoproject.com/en/1.4/ref/templates/builtins/#truncatechars

+0

वास्तव में के लिए काम करने के लिए नहीं मिल सका - आप 'truncatechars' लिंक कर रहे हैं यहाँ है, जो वास्तव में क्या ओ पी का अनुरोध करता है (लेकिन जोड़ दिया गया ओपीएस प्रश्न पूछने के बाद) –

2

एक और अधिक सरल तरीका पर एक नज़र डालें:

{{ variable|stringformat:".10s" }} 

इस मामले में 10 स्थिति तर्क है और स्ट्रिंग के लिए यह प्रदर्शित होने वाले वर्णों की अधिकतम संख्या है।

29
वहाँ

एक official built-in filter है:

{{ variable|truncatechars:255 }} 
+0

यह स्ट्रिंग्स के पीछे इलिप्सिस ("...") डाल देगा (और जिनके पीछे छंटनी नहीं की जाती है)। स्लाइस डोई इसके पीछे इलिप्सिस नहीं डालता है। मेरी सलाह: truncatechars का उपयोग करें। – MZA

+0

उपरोक्त के साथ सहमत हुए। यह ज्यादातर स्थितियों में सही होगा (उदाहरण के लिए हाइपरलिंक को बाधित किए बिना एक लंबा यूआरएल प्रदर्शित करना)। –

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