2017-08-17 26 views
0

在模板:如何在模板中存在對象時如何判斷對象?

<h4> 
     {% if data.wine_one %} 
      {{ data.wine_one.title }} 
     {% elif data.news_one %} 
      {{ data.news_one.title }} 
     {% endif %} 
    </h4> 

我答應了data.wine_one是存在的,因爲在views.py我已經打印出來了。

但是在模板中它沒有顯示出data.wine_one.title,我用data.wine_one != None也不能判斷它。


編輯

views.py

def getData(): 

    banner = models.Banner.objects.filter(fk_info=1) 
    info = models.Info.objects.all().first() 
    aboutus = models.AboutUs.objects.all().first() 
    winery = models.Winery.objects.all()[:3] 
    winery_consult = models.WineryConsult.objects.all()[:4] 

    data = { 

     'banner': banner, 
     'info': info, 
     'aboutus': aboutus, 
     'winery': winery, 
     'winery_consult': winery_consult, 
    } 

    return data  

def productdetails(request, nid): 

    data = getData() 

    wine_one = models.Winery.objects.filter(id=nid).first() 

    data['wine_one'] = wine_one 

    print (data['wine_one'].title) # there ouput the "gaoliangjiu" 

    return render(request, 'article_list_content.html', data) 
+0

是否顯示'data.news_one.title'而不是?或者什麼也沒有? – Hamish

+0

@Hamish什麼都沒顯示。 – 244boy

+1

你能告訴我們'views.py'中的相關函數嗎? – Hamish

回答

0

你誤解了模板背景下是如何工作的。

模板中沒有稱爲data的元素;這只是你在視圖中使用的局部變量來構建上下文。在模板中,您只需直接引用該對象的鍵。所以它應該是:

{% if wine_one %} 
     {{ wine_one.title }} 
    {% elif news_one %} 
     {{ news_one.title }} 
    {% endif %} 
+0

哦,我的錯誤,我應該通過'{'data':data}' – 244boy

相關問題