डेटाबेस से पाठ रेंडर करते समय Django न्यूलाइन वर्ण प्रदर्शित नहीं करता है


90

मैं विकास के लिए Django का उपयोग कर रहा हूं, डेटाबेस से एक newline वर्ण वाले कुछ पाठ को पुनर्प्राप्त करता हूं। हालाँकि, जब मैं इसे टेम्प्लेट टैग का उपयोग करके एक टेम्प्लेट में रेंडर करता हूं तो यह न्यूलाइन वर्ण नहीं दिखाता है।

समस्या क्या है?

जवाबों:


222

आपको याद रखना होगा कि आपके टेम्पलेट HTML का निर्माण कर रहे हैं। HTML में, एक नई लाइन वर्ण केवल एक और सफेद स्थान है, इसका मतलब यह नहीं है कि निम्नलिखित पाठ को एक नई पंक्ति में रखा जाए। HTML में नई लाइनों को बाध्य करने के कई तरीके हैं।

आप अपने पाठ को एक <pre>टैग के साथ लपेट सकते हैं ताकि HTML यह समझ सके कि यह पूर्वनिर्मित है:

<pre>{{value}}</pre>

आप अपने सादे टेक्स्ट को नई लाइनों को HTML में बदलने के लिए Django फ़िल्टर का उपयोग कर सकते हैं। टैग्स linebreaksमें सिंगल न्यूलाइन्स <br>और <p>टैग्स में डबल न्यूलाइन्स को बदल देता है । linebreaksbrबस <br>टैग में नए सिरे से बदल जाता है :

{{value|linebreaks}}
{{value|linebreaksbr}}

आप इनमें से प्रयोग करके देख सकते हैं कि आपको कौन सा बेहतर लगता है।

ऐसा करने में, आप अपने सादे पाठ को HTML में इस तरह से परिवर्तित करने के लिए अपने दृष्टिकोण में स्ट्रिंग हेरफेर का उपयोग कर सकते हैं जो आपके लिए बेहतर है। और यदि आप वास्तव में उन्नत होना चाहते हैं, तो आप अपने स्वयं के फ़िल्टर को लिख सकते हैं जो आपके पसंद के अनुरूप रूपांतरित करता है, और अपने पूरे टेम्पलेट्स में इसका उपयोग करता है।



30

यकीन नहीं होता कि मैं आपके प्रश्न को पूरी तरह से समझ पा रहा हूं, लेकिन लाइनब्रेक फिल्टर का उपयोग करने का प्रयास करें।

{{ value|linebreaks }}

इसका उत्तर होना चाहिए। <pre> </ pre> का उपयोग करना केवल बकवास है।
राहुल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.