Tôi đang sử dụng Django để phát triển, lấy một số văn bản có chứa ký tự dòng mới từ cơ sở dữ liệu. Tuy nhiên, khi tôi kết xuất nó thành một mẫu bằng thẻ mẫu, nó không hiển thị ký tự dòng mới.
Vấn đề là gì?
Tôi đang sử dụng Django để phát triển, lấy một số văn bản có chứa ký tự dòng mới từ cơ sở dữ liệu. Tuy nhiên, khi tôi kết xuất nó thành một mẫu bằng thẻ mẫu, nó không hiển thị ký tự dòng mới.
Vấn đề là gì?
Câu trả lời:
Bạn phải nhớ rằng các mẫu của bạn đang tạo ra HTML. Trong HTML, một ký tự dòng mới chỉ là một khoảng trắng khác, nó không có nghĩa là đặt văn bản sau vào một dòng mới. Có một số cách để buộc các dòng mới trong HTML.
Bạn có thể bọc văn bản của mình bằng một <pre>
thẻ để HTML hiểu rằng nó đã được định dạng trước:
<pre>{{value}}</pre>
Bạn có thể sử dụng bộ lọc Django để chuyển đổi các dòng mới văn bản thuần túy của mình thành HTML. linebreaks
biến các dòng mới thành <br>
thẻ và nhân đôi dòng mới thành <p>
thẻ. linebreaksbr
chỉ cần chuyển dòng mới thành <br>
thẻ:
{{value|linebreaks}}
{{value|linebreaksbr}}
Bạn có thể thử nghiệm với những thứ này để xem bạn thích cái nào hơn.
Nếu không, bạn có thể sử dụng thao tác chuỗi trong chế độ xem của mình để chuyển văn bản thuần túy thành HTML theo cách phù hợp với bạn hơn. Và nếu bạn muốn thực sự nâng cao, bạn có thể viết bộ lọc của riêng mình để chuyển đổi theo cách bạn thích và sử dụng nó trong suốt các mẫu của bạn.