2012-12-13 61 views
0

我想在home.html模板中顯示對象,該對象主要在laglist模板中。我用include標籤來執行操作,但它不起作用。下面是我的代碼:無法使用包含標籤的模板在Django中加載對象

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

你laglist.html和home.html的都來自base.html文件延伸。很可能,當你包含這樣的模板時,這不起作用。 – Rohan

回答

3

這似乎是一個相當普遍的誤解,儘管我不明白爲什麼。

視圖呈現模板,而不是其他方式。模板沒有連接到視圖,並且包含模板不會調用視圖。

如果你想包含一個模板以及一些Python代碼,你將需要編寫一個自定義模板標籤 - 你可能需要一個inclusion tag

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 %} 
+0

感謝您的回覆。嘗試後,它返回「對不起沒有找到」有什麼問題? – picomon

+0

似乎傳遞給模板的leggos對象爲空或無。確保它有一些結果。 – Amyth

相關問題