2012-10-07 26 views
2

我已經在這個圈子裏運行了很長一段時間了。我對模板沒有渲染我的活動場地有問題。我只獲得{%else%}語句。任何幫助是極大的讚賞。謝謝!我的意見不會渲染到我的模板

型號:

class Shows(models.Model): 
    event_date = models.DateField("Date of event") 
    venue = models.CharField(max_length=100) 

    def __unicode__(self): 
     return u'%s' % (self.venue) 

觀點:

from django.shortcuts import render_to_response, get_object_or_404 
from django.template import RequestContext 

from events.models import Shows 


def show_results(request): 
    """ 
    Events - this is the events section. 
    """ 
    events = Shows.objects.all() 

    return render_to_response("events/events.html", { 
     "events": events, 
    }, context_instance=RequestContext(request)) 

模板:

<h2>These are events for this month</h2> 
{% if events %} 
    {% for e in events %} 
     <ul> 
      <li>{{ e.venue }}</li> 
     </ul> 
    {% endfor %} 
{% else %} 
    <p>There are no events at this time.</p> 
{% endif %} 

文件結構:

/myapp 
    /deploy 
    /events 
     /templates 
      /events 
       events.html 
     admin.py 
     models.py 
     urls.py 
     views.py 
    /requirements 
    /static 
    /templates 
    manage.py 
    settings.py 
    urls.py 
+1

你可以把你的模型類也放到聲明顯示的模型類中。 – fatrock92

+0

當然,對不起@ fatrock92 – tjoenz

+0

我假設你實際上在你的數據庫中有一些條目? 'Shows.objects.all()。count()'的輸出是什麼? –

回答

0

您的模板是試圖重複events就好像它是Shows實例的列表。但是,get_object_or_404會返回單個對象。現在,您可能只有一條記錄在DB中,因此get_object_or_404不會引發異常。

爲了有events存儲對象而不是單個實例的列表,你可以取代get_object_or_404有:

events = Shows.objects.all() 

這將返回所有Shows實例的列表。

+0

這將如何幫助?他顯然沒有得到任何東西。 – Marcin

+0

如果他添加了更多的事件,他會得到一個'MultipleObjectsReturned'異常。基於他在模板中迭代事件的事實,我假設他想要一個所有'Shows'實例的列表 - 而不僅僅是一個實例。現在我假設他在DB中只有1個'Shows'記錄,所以它不會拋出這個異常。 –

+0

那麼,你提出了一個他沒有的問題的解決方案? – Marcin