Django tidak menampilkan karakter baris baru saat merender teks dari database


90

Saya menggunakan Django untuk pengembangan, mengambil beberapa teks yang berisi karakter baris baru dari database. Namun, ketika saya merendernya ke template menggunakan tag template itu tidak menampilkan karakter baris baru.

Apa masalahnya?

Jawaban:


222

Anda harus ingat bahwa template Anda menghasilkan HTML. Dalam HTML, karakter baris baru hanyalah spasi kosong, itu tidak berarti meletakkan teks berikut ke baris baru. Ada beberapa cara untuk memaksa baris baru di HTML.

Anda dapat membungkus teks Anda dengan <pre>tag sehingga HTML akan memahami bahwa itu telah diformat sebelumnya:

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

Anda dapat menggunakan penyaring Django untuk mengubah baris baru teks biasa Anda menjadi HTML. linebreaksmengubah satu baris baru menjadi <br>tag, dan menggandakan baris baru menjadi <p>tag. linebreaksbrhanya mengubah baris baru menjadi <br>tag:

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

Anda dapat bereksperimen dengan ini untuk melihat mana yang lebih Anda sukai.

Jika gagal, Anda dapat menggunakan manipulasi string dalam tampilan Anda untuk mengubah teks biasa menjadi HTML dengan cara yang lebih sesuai untuk Anda. Dan jika Anda ingin benar-benar mahir, Anda dapat menulis filter Anda sendiri yang mengubah cara Anda suka, dan menggunakannya di seluruh template Anda.



30

Tidak yakin apakah saya benar-benar memahami pertanyaan Anda, tetapi coba gunakan filter penggalan baris.

{{ value|linebreaks }}

Ini harus menjadi jawabannya. menggunakan <pre> </pre> hanyalah omong kosong.
Rahul
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.