So drucken Sie Zeilenumbrüche in einer Python-Django-Vorlage

Lesezeit: 3 Minuten
{'quotes': u'Live before you die.\n\n"Dream as if you\'ll live forever, live as if you\'ll die today"\n\n"Love one person, take care of them until you die. You know, raise kids. Have a good life. Be a good friend. Try to be completely who you are, figure out what you personally love and go after it with everything you\'ve got no matter how much it takes." -Angelina Jolie.'}

Beachten Sie, dass mein Wörterbuch Zeilenumbrüche enthält: \n

Wie zeige ich meine Vorlage mit diesen Zeilenumbrüchen an?

{{Zitate|withlinebreaks\n}}

Benutzer-Avatar
Ignacio Vazquez-Abrams

Verwenden Sie die linebreaks Filter.

Zum Beispiel:

{{ value|linebreaks }}

Wenn Wert ist Joel\nis a slugwird die Ausgabe sein <p>Joel<br />is a slug</p>.

Benutzer-Avatar
Burnash

Sie können auch die verwenden linebreaksbr Filter, um einfach alle Zeilenumbrüche zu konvertieren <br>
ohne zusätzliche <p>.

Beispiel:

{{ value|linebreaksbr }}

Wenn value ist Joel\nis a slugwird die Ausgabe sein Joel<br>is a slug.

Der Unterschied zu Ignacios Antwort (linebreaks Filter) ist das linebreaks versucht, die Absätze in einem Text zu erraten und jeden Absatz einzufügen <p> wo linebreaksbr einfach ersetzt Zeilenumbrüche durch <br>.

Hier ist eine Demo:

>>> from django.template.defaultfilters import linebreaks
>>> from django.template.defaultfilters import linebreaksbr
>>> text="One\nbreak\n\nTwo breaks\n\n\nThree breaks"
>>> linebreaks(text)
'<p>One<br />break</p>\n\n<p>Two breaks</p>\n\n<p>Three breaks</p>'
>>> linebreaksbr(text)
'One<br />break<br /><br />Two breaks<br /><br /><br />Three breaks'

  • Das ist besser, ich weiß nicht, warum Leute für falsche Antworten stimmen.

    – Lord-shiv

    14. August 2021 um 6:36 Uhr

Alle diese Antworten erwähnen das nicht ausdrücklich {{ value|linebreaksbr }} sollte in der Anzeigevorlage verwendet werden, dh die Get-Anfrage, nicht die Post-Anfrage.

Wenn Sie also eine Vorlage zum Anzeigen von post.details hätten, wäre dies der Fall

<h4>Below are the post details</h4>

{{ post.details|linebreaksbr }}

Und nicht im Postformular

<form method="post">
    {% csrf_token %}
    {{ form|linebreaksbr }}
    <button>Save post</button>
</form>

Hatte das gleiche Problem und nachdem wir es herausgefunden hatten, entschieden wir, dass jemand da draußen es nützlich finden könnte. Viel Spaß beim Codieren!

aus irgendeinem Grund kann ich diesen Wert nicht ändern

val = """
Brand AER \nDetail Material Kuningan berlapis emas chrome dan powder coating \nTipe Produk Keran Shower \nWarna Emas \nMaterial Kuningan \nUkuran Kemasan 12cm x 19cm x 13cm \nUkuran Barang 12cm x 19cm x 13cm \nBerat 2kg \nManual Instruksi instalasi manual dapat didownload di link berikut:https://aer.co.id/products/aer-kran-shower-panas-dingin-luxury-series-sah-sr1/?attachment_id=10954&amp;download_file=5e267c93cdc76&amp;_wpnonce=28db09bc61
"""

das hat ‘\n’ drin mit Zeilenumbrüchen oder linebreaksbr Filter Ich habe das versucht

{ val|linebreaks }}
{ val|linebreaksbr }}

das val bleibt gleich, dann habe ich @AndrewFox answer versucht und dies getan und es hat für mich funktioniert

Veränderung \n zu <br> und Autoescape aus

{% autoescape off %}
   {{ val }}
{% endautoescape %}

Benutzer-Avatar
Andreas Fuchs

Verwenden '<br>' Anstatt von /n.

Bei Bedarf können Sie a .replace('/n', '<br>').

1227440cookie-checkSo drucken Sie Zeilenumbrüche in einer Python-Django-Vorlage

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy