Blog-Auszug in Django

8

Ich baue eine Blog-Anwendung in Django und wenn ich alle Blogs zeige, möchte ich einen kleinen Blog-Auszug mit jedem Eintrag anzeigen. Kann mir jemand sagen, wie kann ich das machen?

  

Eine Möglichkeit wäre, ein zusätzliches Feld zu erstellen und eine feste Anzahl von Wörtern zu speichern   jeder Blogeintrag, sagen wir 20 Wörter. Aber das würde dann redundante Informationen speichern   in der Datenbank. Gibt es einen besseren Weg, das zu tun?

    
Sachin 25.10.2011, 19:18
quelle

3 Antworten

14

Ich schlage vor, dass Sie den Template-Filter truncatewords verwenden.

Vorlagenbeispiel:

%Vor%

Wenn der Blog-Inhalt als HTML gespeichert wird, verwenden Sie truncatewords_html , um sicherzustellen, dass offene Tags nach dem Kürzungspunkt geschlossen werden (oder mit striptags kombinieren, um HTML-Tags zu entfernen).

Wenn Sie Zeichen (nicht Wörter) abschneiden möchten, können Sie slice :

verwenden %Vor%

(gibt die ersten 10 Zeichen aus).

Wenn der Inhalt als HTML gespeichert wird, kombinieren Sie ihn mit striptags , um Probleme mit offenen Tags zu vermeiden: {{blogpost.content|striptags|slice:":10"}}

    
codeape 25.10.2011, 19:25
quelle
2

In Django 1.4 und höher gibt es einen truncatechars Filter, der eine Datei abschneidet string zu einer bestimmten Länge und beende es mit ... . Es schneidet es tatsächlich auf die spezifische Länge minus 3 ab, und die letzten 3 Zeichen werden zum ... .

    
Hwesta 23.07.2013 23:22
quelle
1

Etwas verwandt ..

Ich habe gerade eine Antwort auf diese Frage gegeben: Django strip_tags Vorlagenfilter hinzufügen Leerzeichen , die anderen beim Erstellen von Auszügen helfen können, die HTML-Tags und kurze Inhalte in & lt; p & gt; Stichworte.

Hilft dies zu konvertieren ..

%Vor%

zu diesem ..

%Vor%

statt dessen ..

%Vor%     
robnardo 06.01.2017 17:26
quelle

Tags und Links