django: à l'aide de blocs dans les modèles inclus

J'ai quelques structures html qui sont réutilisés dans d'assez peu d'endroits différents. C'est différent d'un ensemble de modèle donc je ne peux pas l'étendre, il peut également être utilisé pour contenir de contenu complexe donc je ne pense pas que le définissant comme une balise de modèle fait un bon travail. Ci-dessous quelques pseudo-code décrivant mon résultat souhaité, lors de l'utilisation de template_level2.html vous pouvez facilement mettre des trucs dans le reusable_pattern_template en appelant le bloc à l'intérieur. Si je ne l'utilisation de ce code, ce que vous écrivez dans "contenu" de template_level_2.html ne pas s'afficher. Comment dois-je faire avec cela?

base.html

<html>
<head></head>
<body>
{% block content %}{% endblock %}
</body>
</html>

template_level1.html

{% extends 'base.html' %}
{% block content %}
  Something here...
  {% include 'reusable_pattern_template.html' %}
  Something else here...
{% endblock %}

reusable_pattern_template.html

<div>
  <div>
    <div>
      {% block local_content %}{% endblock %}
    </div>
   </div>
</div>

template_level2.html

{% extends 'template_level1.html' %}
{% block local_content %}
  Actual content here...
{% endblock %}

mise à jour:
Désolé, les étend dans template_level2.html a des fautes d'orthographe, je viens de le corriger.

Il peut ne pas être très clair, mais le code ci-dessus est plus un pseudo-code décrivant mon résultat souhaité. En bref,

  • Je voudrais inclure de petits morceaux de réutilisables html des modèles dans mon
    des modèles de.
  • Ces modèles sont comme des boîtes, que vous pouvez mettre ensemble les morceaux de html
    contenu en eux. Donc, les variables de contexte peut être un peu de trop limitée pour
    mon but
  • Semble comme template_level2.html n'est jamais appelée. Et si vous include certains blocs de code, vous n'avez pas besoin d'utiliser block déclaration devra comprendre quand et ce que vous voulez
  • Salut fastreload! template_level2.html est le dernier niveau du modèle si ce n'est pas incluse/étendu n'importe où. En appelant {% block %} déclaration dans template_level2.html, j'avais l'intention de mettre du contenu dans reusable_pattern_template.html, qui est utilisé dans template_level2.html
  • Question: pourquoi ne pas utiliser django-générique-flatblocks ? C'est une application fantastique qui fournit un excellent modèle.
  • template_level2.html sans les guillemets, est interprété comme la variable qui doit correspondre à la chaîne ou le Modèle objet. Lire plus à propos de extends
InformationsquelleAutor Xun Yang | 2012-03-09