Pour 2 fichiers modèles enfants héritant d'un bloc, le {{ block.super }}
ne résout pasDans Django, Problème avec {{block.super}}, Comment éviter la duplication d'un `bloc` dans plusieurs fichiers modèles?
Python 2.5.2, Django 1.0, Windows XP SP3
code squelette Exemple pour les fichiers impliqués:
base.html
item_base.html
show_info_for_all_items.html
show_info_for_single_item.html
FICHIER: base.html
{% block content %}
{% endblock %}
FICHIER: item_base.html
{% extends "base.html" %}
{% block item_info %}
Item : {{ item.name }}<br/>
Price : {{ item.price }}<br/>
{% endblock %}
FICHIER: show_info_for_all_items.html
{% extends "item_base.html" %}
{% block content %}
<h1>info on all items</h1>
<hr/>
{% for item in items %}
{% block item_info %}
{{ block.super }}
{% endblock %}
<hr/>
{% endfor %}
{% endblock %}
FICHIER: show_info_for_single_item.html
{% extends "item_base.html" %}
{% block content %}
<h1>info on single item</h1>
{% block item_info %}
{{ block.super }}
{% endblock %}
{% endblock %}
show_info_for_all_items.html
montre une liste des articles ainsi que l'information de chaque article.
show_info_for_single_item.html
montre un seul article avec l'information de l'article.
show_info_for_all_items.html
et show_info_for_single_item.html
parts même code pour montrer les informations de l'article, donc je l'ai déplacé à item_base.html
dans block item_info
mais le {{ block.super }}
dans show_info_for_all_items.html
et show_info_for_single_item.html
ne fonctionne pas. {{ block.super }}
résout comme vide.
Si je déplace le code de retour de block item_info
à item_base.html
dans show_info_for_all_items.html
et show_info_for_single_item.html
cela fonctionne mais je dois dupliquer même code block item_info
dans 2 fichiers.
Si le problème block.super ne peut pas être résolu, ne Django offre quelque chose comme INCLUDE =>{% INCLUDE "item_base.html" %}
si les blocs d'un fichier modèle peuvent être inclus (au lieu de extends
)
Comment puis-je éviter la duplication block item_info
à la fois fichiers html?
que vous aviez déjà googlé sur django + inclure vous auriez pu demander et répondu à cela dans une fraction du temps qu'il a fallu pour taper dans. –
Embrasser les non-Googleurs: http://meta.stackexchange.com/questions/5280/embrace-the-non-googlers et Comment devrions-nous traiter les questions de Google? : http://meta.stackexchange.com/questions/8724/how-should-we-deal-with-google-questions – e70
Non, je n'embrasserai pas les vampires, et je ne suis pas d'accord avec ceux qui les encouragent ici. SO ne peut pas et, IMNSHO, * ne devrait pas essayer * de remplacer les docs de haute qualité d'un projet comme Django. Penser que le SO peut et doit être l'arrogance, simple et clair. –