2010-10-04 5 views
2

Par exemple, j'ai un fichier modèle appelé:Comment utiliser {% avec%} {% ainsi que comprennent%} - Django

filter.html

{{ title }} 

code... 

Ce que je voudrais à faire est, sur un modèle séparé:

{% with "Filter by Types" as title %} 
    {% include "filter.html" %} 
{% endwith %} 

Actuellement, cela ne peut pas être fait. Quelqu'un pourrait-il nous expliquer pourquoi et comment y parvenir?

contexte de fond:

La base d'application est utilisée pour plusieurs sites. L'administrateur du site serait seulement en mesure de modifier les fichiers de modèle pour leur donner un certain degré de personnalisation, mais pas les views.py ou d'autres fichiers de base. La variable {{title}} ne peut donc pas vraiment être envoyée par views.py.

+0

J'ai rencontré des problèmes similaires avec plusieurs sites et j'ai fini par ajouter différents processeurs de contexte aux différents sites. Par exemple. Les vues génériques de django vous permettent d'ajouter un contexte supplémentaire à la vue, que vous pourriez par exemple spécifier dans urls.py de votre site. –

+1

Pourquoi dites-vous que cela ne peut pas être fait? Je fais exactement cela tout le temps. Qu'est-ce qui se passe exactement quand vous essayez? –

+0

@Daniel: Vous avez raison! Je viens de l'essayer à nouveau et ça marche. Je dois avoir fait une faute de frappe ou d'autres choses mal quand j'ai essayé cela avant. Merci! – MonkeyBoo

Répondre

4

Je pourrais manquer quelque chose mais pourquoi ne pas simplement utiliser étend et bloc étiquettes?

base.html

{% block title %}Default title{% endblock %} 

filter.html

{% extends "base.html" %} 
{% block title %}Filter by Types{% endblock %} 

Vérifiez la documentation sur extends, blocks et template inheritance pour plus d'informations.

Questions connexes