3

project /p1.htmlをロードするindex.htmlがあり、project/p2.htmlをロードします。project/p1.htmlとproject/p2.htmlはそれぞれ独自に正常に読み込まれるため、正しく機能することがわかります。問題は、project/p1.htmlをindex.htmlにロードしようとしていることです。

{% include 'project/p1.html' %}

project/p1.htmlには次のステートメントがあります。

{% include 'project/p2.html' %}

index.htmlをロードすると、次のエラーが発生します。

VariableDoesNotExist at /
Failed lookup for key [objects] in u"[{'params': {}}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7fd3dc0e2410>}, {'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7fd3dc0e2210>, 'user': <django.utils.functional.SimpleLazyObject object at 0x7fd3dc10c790>}, {},......

project /p1.htmlから"{%include'project / p2.html'%}"を削除すると、index.htmlが正常に読み込まれ、エラーメッセージが表示されなくなります(ただし、明らかにコンテンツが表示されません)。

これを解決するにはどうすればよいですか?

編集:ここに「project / p2.html」:

<table class="mytable">

{% for object in objects %}
    <tr class="my_row">
      <td>{{ object.name }}</td>
    </tr>
{% endfor %}
</table>

これがviews.pyです:

from models import Mytable
from django.shortcuts import render_to_response, RequestContext

def my_request(request,
    template="project/p1.html",
    page_template="project/p2.html"):
    context = {
        'objects': Mytable.objects.all().order_by('-date'),
        'page_template': page_template,
    }

    if request.is_ajax():
        template = page_template
    return render_to_response(template, context,
        context_instance=RequestContext(request))
4

2 に答える 2

5

使用できない変数を探しています。追加のコンテキストパラメータを渡します。

{% include "name_snippet.html" with person="Jane" greeting="Hello" %}

編集:ドキュメント

于 2012-08-20T15:39:41.250 に答える
0

テンプレートをテンプレートに含めるために特別なことは何もする必要はありませんが、すべてのテンプレートで参照されるすべての変数がテンプレートコンテキストで定義されていることを確認する必要があります。何をしようとしているのかによって、これが役立つ場合があります。Djangoテンプレート-「include」テンプレートのコンテキストを変更する

于 2012-08-20T15:42:44.447 に答える