Balises et filtres de modèles personnalisés Django (exemple de code)

不言
Libérer: 2019-04-01 11:03:06
avant
1957 Les gens l'ont consulté

Cet article vous apporte du contenu sur les balises et les filtres de modèles personnalisés Django (exemples de code). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

1. Créez une bibliothèque de modèles

Créez un nouveau package templatetags dans le répertoire où se trouve une application, puis créez une balise de stockage. ou filtrez-le Module avec n'importe quel nom, tel que myfilters.py.

Écrivez le code pertinent dans ce module.

Remarque : L'application où se trouvent les templatetags doit être configurée dans le fichier de configuration.

2. Définir le filtre

Un filtre est une fonction Le premier paramètre est la valeur à traiter. Après cela, il peut y avoir n'importe quel nombre de paramètres. paramètre de filtre.

from django import template
from django.template.defaultfilters import stringfilter

register=template.Library()

# 去除指定字符串
@register.filter(name='mycut')
@stringfilter
def mycut(value,arg):
    return value.replace(arg,'')

# 注册过滤器
# register.filter(name='mycut',filter_func=mycut)
Copier après la connexion

3. Définir des balises

simple_tag

Traiter les données et renvoyer des données spécifiques

@register.simple_tag(name='posts_count')
def total_posts():
    return Post.published.count()
Copier après la connexion

inclusion_tag

Traiter les données et renvoyer un modèle rendu

@register.inclusion_tag('blog/post/latest.html')
def show_latest_posts(count=5):
    latest_posts=Post.published.order_by('-publish')[:5]
    return {
        'latest_posts':latest_posts,
    }
Copier après la connexion

blog/post/latest.htmlLe contenu est le suivant :

<strong>最新文章</strong>
<ul>
{% for post in latest_posts %}
<li>
    <a href="{% url &#39;blog:post_detail&#39; post_id=post.id %}">{{ post.title }}</a>
</li>
{% endfor %}
</ul>
Copier après la connexion

4 . Utilisez

Avant d'utiliser des balises ou des filtres personnalisés, vous devez utiliser {% load 模块名称 %} pour charger des balises et des filtres personnalisés dans le fichier modèle.

Après cela, vous pouvez l'utiliser comme si vous utilisiez les balises fournies avec Django.

Remarque : Même si le module où se trouve la balise ou le filtre personnalisé a été chargé dans le modèle de base hérité du modèle actuel, il doit quand même être chargé à nouveau dans le modèle actuel.

[Recommandations associées : Tutoriel vidéo Python]

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:cnblogs.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal