我想在home.html模板中显示对象,该对象主要在laglist模板中。我使用include标签来执行操作,但它不起作用。以下是我的代码:
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))
home.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))
答案 0 :(得分:3)
这似乎是一个相当普遍的误解,虽然我不明白为什么。
视图渲染模板,而不是相反。模板与视图没有任何关联,包括模板也不会调用视图。
如果要包含模板和一些Python代码,则需要编写自定义模板标记 - 可能需要inclusion tag。
答案 1 :(得分: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 %}