Django는 데이터베이스에서 텍스트를 렌더링 할 때 개행 문자를 표시하지 않습니다.


91

개발을 위해 Django를 사용하고 있으며 데이터베이스에서 개행 문자가 포함 된 일부 텍스트를 검색합니다. 그러나 템플릿 태그를 사용하여 템플릿으로 렌더링하면 개행 문자가 표시되지 않습니다.

무엇이 문제입니까?

답변:


224

템플릿이 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.