27 votes

Django : autoriser les sauts de ligne à partir d'une entrée de type textarea

Comment autoriser le retour à la ligne dans une entrée de type textarea dans django pour afficher ensuite cette entrée sur la page ?

43voto

barin Points 1041

brise-lignes

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>.

5voto

user3402383 Points 42

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 !

1voto

Haridas Points 11

Utilisez {% autoescape off %} {{ your_variable }} {% endautoescape %} .

0voto

Emanuel Faisca Points 17

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é.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X