2012-02-01 15 views
5

से मैंने देखा है कि मेरा टेम्प्लेट मेरे मॉडल को प्रस्तुत कर रहा है। खरीफिल्ड और मॉडल। टेक्स्टफिल्ड बिना किसी अतिरिक्त सफेद जगह के।अतिरिक्त फ़ीटस्पेस (डीजेंगो/पायथन)

उदाहरण के लिए

, अगर मैं इस तरह के रूप ... डेटा दर्ज

This  is a   test 


to see what happens. 

प्रदान की गई वस्तु क्षेत्र के रूप में दिखाई देगा ...

This is a test to see what happens. 

इस Django का एक जानबूझकर सुविधा है या मेरे पास है कुछ फिल्टर या पैरामीटर कहीं याद किया?

मैंने कुछ डीबग कोड (प्रिंट ऑब्जेक्ट.फील्ड) के साथ फ़ील्ड को स्वयं ही चेक किया है और इसमें अतिरिक्त व्हाइटस्पेस है, इसलिए समस्या प्रतिपादन पक्ष में है।

मैं उपयोगकर्ता को टेक्स्टफिल्ड्स में डेटा के पैराग्राफ दर्ज करने की अनुमति कैसे दे सकता हूं? मैं उस व्हाइटस्पेस को कैसे सुरक्षित रख सकता हूं जिसे उपयोगकर्ता ने दर्ज किया हो?

This  is a   test 


to see what happens. 

के रूप में डेटाबेस में बचाने होगा::

This  is a   test\n\n\nto see what happens. 

आप के लिए है

+0

कृपया कुछ Stackoverflow मार्कअप का उपयोग करें। अभी हम आपके उदाहरण कोड को समझ नहीं सकते हैं। –

उत्तर

12

आप StackOverflow अपने रिक्त स्थान प्रदर्शित नहीं करते में भी देख सकते हैं, यह आपके प्रश्न के स्रोत से है एचटीएमएल के रूप में प्रतिपादन करते समय समस्याएं:

  1. शब्दों के बीच अतिरिक्त रिक्त स्थान ब्रांड्स द्वारा प्रदर्शित किए गए हैं owser, जब तक यह <pre></pre> टैग

  2. के बीच है
  3. LINEBREAKS सादा पाठ लाइनब्रेक, जो ब्राउज़र में प्रदर्शित नहीं करते <pre></pre> टैग के बीच जब तक के रूप में प्रदान की जाएगी।

रिक्त स्थान के लिए, आप such a template filter का उपयोग उन्हें अपने html इकाई बराबर साथ बदलने के लिए कर सकते हैं: &nbsp;

एचटीएमएल लाइनब्रेक्स में डेटाबेस लाइनब्रेक को कन्वर्ट करने के लिए, linebreaksbr अंतर्निहित फ़िल्टर का उपयोग करें। उदाहरण के लिए, {{ foo }} है यदि: test\nbar, तो {{ foo|linebreaksbr }} प्रस्तुत करना होगा: test<br />bar

  1. उस में एक __init__.py फ़ाइल के साथ एक "templatetags" फ़ोल्डर बनाएं आपकी ऐप्लिकेशन में से कुछ में।

  2. सहेजें the snippet someapp/templatetags/replace_tag में उदाहरण के लिए।py

  3. लोड टेम्पलेट फिल्टर ऐसे {% load replace_tag %}

  4. जैसा कि टेम्प्लेट में बदलने के साथ जोड़कर linebreaksbr जैसे: {{ foo|linebreaksbr|replace:" ","&nbsp;" }}

आप अपना स्वयं का टेम्पलेट फिल्टर कर सकते हैं कि होगा टेक्स्ट को उस HTML में संसाधित करें जिसकी आपको आवश्यकता है। किसी भी मामले में, पूरी जानकारी के लिए custom template filter documentation देखें।

+0

महान उत्तर, बहुत धन्यवाद! मुझे लगता है कि linebreaksbr फ़िल्टर अब के लिए पर्याप्त है। – powlo

+1

यही मैंने पहले भी सोचा था – jpic

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