Django:如何传递上下文?

时间:2010-07-20 19:18:10

标签: django django-templates

我知道将上下文传递给模板,但我对给定的场景感到困惑,请帮助

第X类:

id:

name:

status:

班级主要:

number1: object of X

number2: object of X

message: "Hello World!"

我得到了Main of Object,它有两个X对象,但有不同的上下文。 我想为X编写一个模板,并将不同的conetext传递给它,以实现代码的可用性和可维护性。

所以我试图在我的演示逻辑中这样做,我有Main的对象

<div class="ui-tabs-panel" id="tab-results">
    {% include "render/objectX.html" %}
  </div>

objectX.html是:

{% block content %}
<div id="d">
 <table id="c">
  <tbody>
    <tr>
     <td>id : {{ x.id }}</td>
     <td>name : {{ x.name }}</td>
     </tr>
   </tbody>
 </table>
</div>
{% endblock %}

如何将Main.number1(X的对象)显式传递给模板?

谢谢

2 个答案:

答案 0 :(得分:5)

一种简单的方法是使用{% with %}模板标记包装include。例如,假设您的上下文中有main

<div class="ui-tabs-panel" id="tab-results">
    {% with main.number1 as x %}
        {% include "render/objectX.html" %}
    {% endwith %}
</div>

这会将number1对象作为名为x的变量放入上下文中,该变量可以在包含的模板中使用。

答案 1 :(得分:2)

或者您可以像这样使用它

{% include "render/objectX.html" with x=main.number1  %}

根据django documention https://docs.djangoproject.com/en/1.8/ref/templates/builtins/#include