10
votes

Blog Extraits à Django

Je construis une application de blog dans Django et lorsque j'affiche tous les blogs, je souhaite afficher un petit extrait de blog avec chaque entrée. Quelqu'un peut-il me dire comment puis-je faire ça?

Une façon de faire cela serait de créer un champ supplémentaire et de stocker un nombre fixe de mots pour Chaque entrée de blog, disons 20 mots. Mais cela stockerait des informations redondantes dans la base de données. Y a-t-il un meilleur moyen de le faire?


1 commentaires

Selon si vous souhaitez que l'extrait soit modifiable ou ne détermine pas la bonne réponse. Pourrait le faire simplement avec un extrait def (auto) et renvoyer le corps haché à une certaine longueur de chaîne puis assainir le HTML le cas échéant.


3 Réponses :


16
votes

Je vous suggère d'utiliser le TRUNCATEWORS Filtre de modèle .

exemple de modèle: p>

{{blogpost.content|slice:":10"}}


4 commentaires

Cela tronquera les mots à une longueur spécifique ... cependant y a quelque chose si je veux tronquer un nombre spécifique de caractères car les mots peuvent être plus longs et je ne veux pas que ma boîte devienne trop grande


Si vous décidez d'ajouter un champ de récapitulatif dans votre modèle de blog, vous pouvez revenir sur les mots tronqués si le résumé est vide (en utilisant si et ces balises dans le modèle). Mais généralement, la balise / filtre de modèle tronquée est la méthode populaire de faire cela.


@Sachin: réponse mise à jour avec le nombre de caractères.


StripTags Sauvé ma journée. Merci pour ce conseil!



2
votes

à Django 1.4 et plus tard, il y a un truncatechars Filtre qui tronquera une chaîne à une longueur spécifique et terminera-la avec ... . Il le tronque en fait à la longueur spécifique moins 3, et les 3 derniers caractères deviennent le ... .


0 commentaires

1
votes

Un peu liée ..

Je viens de donner une réponse à cette question: Filtre de modèle Django Strip_Tags Ajouter un espace qui peut aider les autres lors de la fabrication d'extraits contenant des balises HTML et un contenu court dans les balises

. P>

aide à convertir ceci .. p> xxx pré>

à ceci. p> xxx pré>

au lieu de cela. . P>

'This is a paragraph.This is another paragraph.'


0 commentaires