Używam Django do programowania, pobierając tekst zawierający znak nowego wiersza z bazy danych. Jednak kiedy renderuję go do szablonu za pomocą tagu template, nie pokazuje on znaku nowej linii.
Jaki jest problem?
Używam Django do programowania, pobierając tekst zawierający znak nowego wiersza z bazy danych. Jednak kiedy renderuję go do szablonu za pomocą tagu template, nie pokazuje on znaku nowej linii.
Jaki jest problem?
Odpowiedzi:
Musisz pamiętać, że Twoje szablony generują HTML. W HTML znak nowej linii jest po prostu kolejną spacją, nie oznacza to umieszczenia następującego tekstu w nowej linii. Istnieje wiele sposobów wymuszenia nowych wierszy w HTML.
Możesz owinąć tekst <pre>
tagiem, aby kod HTML zrozumiał, że jest wstępnie sformatowany:
<pre>{{value}}</pre>
Możesz użyć filtrów Django, aby przekonwertować znaki nowej linii w postaci zwykłego tekstu na HTML. linebreaks
zamienia pojedyncze <br>
znaki nowej linii w znaczniki, a podwójne <p>
znaki nowej linii w znaczniki. linebreaksbr
po prostu zamienia <br>
znaki nowej linii w tagi:
{{value|linebreaks}}
{{value|linebreaksbr}}
Możesz eksperymentować z nimi, aby zobaczyć, które lubisz bardziej.
Jeśli to się nie uda, możesz użyć manipulacji ciągami znaków w swoim widoku, aby przekonwertować zwykły tekst na HTML w sposób, który bardziej Ci odpowiada. A jeśli chcesz być naprawdę zaawansowany, możesz napisać własny filtr, który konwertuje tak, jak lubisz, i używać go w swoich szablonach.