Maison  >  Article  >  développement back-end  >  Balises et filtres de modèles personnalisés Django (exemple de code)

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

不言
不言avant
2019-04-01 11:03:061934parcourir

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)

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()

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,
    }

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>

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer