2010-09-16 5 views
0

J'ai écrit une étiquette de modèle personnalisé:Comment utiliser une balise de modèle personnalisé Django dans un modèle?

def mytag(para): 
    return something 

Dans mon modèle, je reçois une valeur {{value}}. Maintenant j'utilise {{value|mytag}} pour appliquer la balise à la valeur, et il lance une erreur de syntaxe.

+0

comment utiliser mytag.? – user12345

+0

-1. Y at-il une raison pour laquelle vous ne pouvez pas lire la documentation extrêmement claire? –

+2

@Daniel: Peut-être qu'Alis a mal compris la documentation - ce qui est clair pour une personne n'est pas toujours clair pour tout le monde. Y a-t-il une raison pour laquelle vous ne pouvez pas ignorer des questions que vous trouvez trop simples? –

Répondre

2

Pour utiliser les balises de modèle dans Django, vous enroulez le nom de la balise dans {% et %}, comme ceci:

{% mytag %} 

Si votre balise prend un paramètre, comme le vôtre semble, vous passez le paramètre après le nom de la balise:

{% mytag value %} 

la syntaxe que vous essayez d'utiliser - {{ value|mytag }} est pour le modèle filtres, pas les tags.

5

Votre exemple ressemble à un filtre. Si c'est tout ce que vous voulez, c'est assez simple. Les liens de Paul vers la documentation devraient fournir une explication assez claire de comment et pourquoi faire les choses. Voici un début rapide qui devrait vous aider à démarrer.

  1. Créez un dossier dans votre application appelée « templatetags » avec un fichier __init__.py vide
  2. Créez un fichier pour contenir vos balises personnalisées, nous disons « tags.py » pour l'instant.

votre fichier tags.py devrait ressembler à ceci:

 
from django import template 
register = template.Library() 

@register.filter 
def mytag(para): 
    return 'something' 

puis, dans votre modèle, vous devez d'abord charger vos balises personnalisées, vous pouvez y avoir accès.

{% load tags %} 

My new value is: {{ value|mytag }} 
Questions connexes