Veritabanından metin işlerken Django yeni satır karakterini göstermiyor


91

Geliştirme için Django kullanıyorum, veritabanından yeni satır karakteri içeren bazı metinler alıyorum. Ancak, onu bir şablon etiketi kullanarak bir şablona dönüştürdüğümde, satırsonu karakterini göstermiyor.

Sorun nedir?

Yanıtlar:


226

Şablonlarınızın HTML ürettiğini unutmamalısınız. HTML'de, yeni satır karakteri yalnızca başka bir beyaz boşluktur, aşağıdaki metni yeni bir satıra koymak anlamına gelmez. HTML'de yeni satırları zorlamanın birkaç yolu vardır.

Metninizi bir <pre>etiketle kaydırabilirsiniz, böylece HTML metninizin önceden biçimlendirilmiş olduğunu anlar:

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

Düz metin yeni satırlarınızı HTML'ye dönüştürmek için Django filtrelerini kullanabilirsiniz. linebreakstek yeni satırları <br>etiketlere ve çift yeni satırları <p>etiketlere dönüştürür . linebreaksbrsadece yeni satırları <br>etiketlere dönüştürür :

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

Hangisini daha çok sevdiğinizi görmek için bunlarla deneyebilirsiniz.

Başarısız olursa, düz metninizi size daha uygun bir şekilde HTML'ye dönüştürmek için görünümünüzde dize manipülasyonunu kullanabilirsiniz. Ve gerçekten ilerlemek istiyorsanız, istediğiniz şekilde dönüştüren kendi filtrenizi yazabilir ve şablonlarınızda kullanabilirsiniz.



30

Sorunuzu tamamen anladığımdan emin değilim, ancak satır sonu filtresini kullanmayı deneyin.

{{ value|linebreaks }}

Cevap bu olmalı. <pre> </pre> kullanmak saçmalıktır.
Rahul
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.