0

我想在 home.html 模板中显示对象,该对象主要在 laglist 模板中。我使用包含标签来执行操作,但它不起作用。以下是我的代码:

laglist.html

   {% extends "base.html" %}

    {% block lag %}
        <h2>Lam </h2>

        {% for leggo in leggos  %}
           <p><a href= "{% url halldetail leggo.id %}" >{{ leggo.name }}</a><p>
      <img src="{{MEDIA_URL}}/{{leggo.thumbnail_1.url}}" width="83" height="78"> <img src="{{MEDIA_URL}}/{{leggo.thumbnail_2.url}}" width="83" height="78" />

        <li>{{ leggo.state }}</li>
         {% endfor %}

    {% endblock %}

查看 laglist:

    def lag_view(request):
        leggos=Fin.objects.filter(state='venu')
        for leggo in leggos:
            print leggo.id
        return render_to_response('laglist.html',  {'leggos':leggos,'leggo':leggo,'Fin':Fin},context_instance=RequestContext(request))

主页.html

 {% extends "base.html" %}
 {% block content %}

   <p> {% include 'laglist.html' %} </p>
 {% endblock %}

看家

 def homp(request):
    return render_to_response('home.html',context_instance=RequestContext(request))
4

2 回答 2

3

这似乎是一个相当普遍的误解,尽管我不明白为什么。

视图呈现模板,而不是相反。模板与视图无关,包含模板不会调用视图。

如果你想在一些 Python 代码中包含一个模板,你需要编写一个自定义模板标签——可能你需要一个包含标签。

于 2012-12-13T12:41:05.453 回答
0

您需要将leggos字典传递到您的主视图才能正常工作。所以在你的主视图中试试这个。

def home(request):
    data = {}
    data['leggos'] = Fin.objects.filter(state='venu')
    return render_to_response('home.html', data, context_instance=RequestContext(request))

然后在 laglist.html 试试这个:

{% if leggos %}
    {% for leggo in leggos %}
        <p> {{ leggo }} </p>
    {% endfor %}
{% else %}
    <p> Sorry, No Leggos Found.</p>
{% endif %}
于 2012-12-13T13:36:36.450 回答