Django ไม่แสดงอักขระขึ้นบรรทัดใหม่เมื่อแสดงข้อความจากฐานข้อมูล


91

ฉันใช้ Django เพื่อการพัฒนาโดยดึงข้อความบางส่วนที่มีอักขระขึ้นบรรทัดใหม่จากฐานข้อมูล อย่างไรก็ตามเมื่อฉันแสดงเป็นเทมเพลตโดยใช้แท็กเทมเพลตจะไม่แสดงอักขระขึ้นบรรทัดใหม่

อะไรคือปัญหา?

คำตอบ:


226

คุณต้องจำไว้ว่าเทมเพลตของคุณกำลังสร้าง HTML ใน HTML อักขระขึ้นบรรทัดใหม่เป็นเพียงช่องว่างอื่นไม่ได้หมายความว่าให้ใส่ข้อความต่อไปนี้ลงในบรรทัดใหม่ มีหลายวิธีในการบังคับให้ขึ้นบรรทัดใหม่ใน HTML

คุณสามารถห่อข้อความของคุณด้วย<pre>แท็กเพื่อให้ HTML เข้าใจว่ามีการจัดรูปแบบไว้ล่วงหน้า:

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

คุณสามารถใช้ตัวกรอง Django เพื่อแปลงบรรทัดใหม่ของข้อความธรรมดาเป็น HTML linebreaksเปลี่ยนบรรทัดใหม่เดียวเป็น<br>แท็กและขึ้นบรรทัดใหม่สองครั้งเป็น<p>แท็ก linebreaksbrเปลี่ยนบรรทัดใหม่เป็น<br>แท็ก:

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

คุณสามารถทดลองกับสิ่งเหล่านี้เพื่อดูว่าคุณชอบแบบไหนมากกว่ากัน

หากไม่สำเร็จคุณสามารถใช้การปรับแต่งสตริงในมุมมองของคุณเพื่อแปลงข้อความธรรมดาของคุณเป็น HTML ในแบบที่เหมาะกับคุณมากขึ้น และถ้าคุณต้องการขั้นสูงจริงๆคุณสามารถเขียนฟิลเตอร์ของคุณเองที่แปลงในแบบที่คุณต้องการและใช้กับเทมเพลตของคุณได้เลย



30

ไม่แน่ใจว่าฉันเข้าใจคำถามของคุณทั้งหมดหรือไม่ แต่ลองใช้ตัวกรองการแบ่งบรรทัด

{{ value|linebreaks }}

นี่น่าจะเป็นคำตอบ การใช้ <pre> </pre> เป็นเพียงเรื่องไร้สาระ
Rahul
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.