[Fixed]-How to output text from database with line breaks in a django template?


Use linebreaks or linebreaksbr filter:

{{ text|linebreaks }}

Or surround the text with <pre>...</pre>.

<pre>{{ text }}</pre>


I linebreaks uses <p> tag to convert new line, this will probally not preserve the empty line or you will just not see it due to css styling.
You can try instead linkebrksbr that will use <br/> for new lines.

Hope this helps


Try to use <br/>

<br/> is an HTML code. Don’t forget you are working with HTML using Django. Keeping this in mind will solve a lot of beginners trouble.


<pre> tag works fine, but has some default declarations (like monospace and margins).

The solution for me was to take the essence of the <pre> tag – the following declaration:

white-space: pre;

And modify it (if you don’t need extra spaces):

white-space: pre-line;

Now the data from the database fields models.TextField keep all the line breaks.


Leave a comment