Comment autoriser le retour à la ligne dans une entrée de type textarea dans django pour afficher ensuite cette entrée sur la page ?
Réponses
Trop de publicités?Remplace les sauts de ligne dans le texte brut par le HTML approprié ; un simple saut de ligne devient un saut de ligne HTML ( <br />
) et une nouvelle ligne suivie d'une ligne blanche devient un saut de paragraphe ( </p>
).
Par exemple :
{{ value|linebreaks }}
Si la valeur est Joel\nis a slug
le résultat sera <p>Joel<br />is a slug</p>.
N'utilisez pas {% autoescape off} ! Sinon, les entrées contrôlées par l'utilisateur risquent de ne pas être échappées, ce qui constitue un risque pour la sécurité. Comme mentionné, utilisez linebreaks ou linebreaksbr !
J'avais une zone de texte pour la saisie personnalisée minimale de l'utilisateur dans le modèle et je voulais que le texte formaté que l'utilisateur insère reste le même. La solution, j'ai simplement changé la variable Model en un type TextField. Le texte formaté par l'utilisateur s'affiche même dans l'administration :)
ex.
class Uadds(models.Model):
title = models.CharField(max_length = 50)
description = models.TextField(max_length = 1000)
Le titre n'affichera pas les sauts de ligne, mais la description les affichera. Je n'ai pas testé cela avec un éditeur de texte enrichi... J'espère que cela vous a aidé.