हाय मैं अजगर Django के लिए नया हूँ। मुझे विशिष्ट स्थानों में नई लाइन चाहिए, इसलिए मैंने कोशिश की

def abc(request):
    text = "This is\n a good example"
    return render(request, 'test.html', {'text' : text})

HTML भाग में

Hello {{ text|linebreaks }}

और यह आउटपुट के साथ पूरी तरह से ठीक काम कर रहा है

हैलो यह है

एक अच्छा उदाहरण

यहाँ मेरा प्रश्न है कि मैं अपने डेटाबेस में कुछ 400 - 800 शब्द संग्रहीत करता हूँ जिसमें लगभग 4-5 पैराग्राफ हैं। मैं यहां नई लाइन चाहता हूं।

इसलिए, मैं अपने डेटाबेस में "यह \ n एक अच्छा उदाहरण है" जैसे डेटा संग्रहीत करता हूं।

और बस इसे django टेम्पलेट (Html ​​साइड) में कॉल करें

लेकिन यह हैलो प्रिंट करता है यह \n एक अच्छा उदाहरण है

यहां लाइन ब्रेक काम क्यों नहीं कर रहा है?

मेरा एचटीएमएल ट्रू कोड

{% for essay in eassays %}
{{ essay.description|linebreaks }}
{% endfor %}

मैंने नाम बदल लिया है। साथ ही, मैं ऐसे 100 डेटा लोड कर रहा हूं। कोई संभावित समाधान या अन्य तर्क!

शुक्रिया!

1
Hemil Shyani 19 अप्रैल 2020, 21:01

1 उत्तर

सबसे बढ़िया उत्तर

इसलिए, मैं अपने डेटाबेस में "यह \ n एक अच्छा उदाहरण है" जैसे डेटा संग्रहीत करता हूं।

आपने संभवतः डेटाबेस में '\\n' संग्रहीत किया है, इसलिए एक बैकस्लैश, उसके बाद एक nनई लाइन चैक्टर '\n' [wiki] नहीं है। ध्यान दें कि अगर आप \n को फॉर्म एलिमेंट में लिखते हैं, तो यह एस्केप हो जाएगा और इस तरह उसी के अनुसार स्टोर हो जाएगा।

उपयोगकर्ताओं को नई पंक्तियों का उपयोग करने देने के लिए (Enter दबाकर) अपने प्रपत्र तत्वों में <textarea> का उपयोग करना बेहतर हो सकता है।

आप तारों को प्रतिस्थापित करके क्षति को ठीक करने का प्रयास कर सकते हैं:

from django.db.models import Replace, Value

Essay.objects.update(
    description=Replace('description', Value('\\n'), Value('\n'))
)

और इस प्रकार अपने डेटाबेस को इस प्रकार अपडेट करें कि '\\n' को अब '\n' से बदल दिया जाए।

1
Willem Van Onsem 19 अप्रैल 2020, 21:08