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
4

1 に答える 1

0

テンプレートは、インスタンスeventsのリストであるかのように反復しようとしています。Showsただし、get_object_or_404単一のオブジェクトを返します。現在、DB にはおそらく 1 つのレコードしかget_object_or_404ないため、例外はスローされません。

events単一のインスタンスではなくオブジェクトのリストを保存するには、次のものに置き換えることができますget_object_or_404

events = Shows.objects.all()

Showsこれにより、すべてのインスタンスのリストが返されます。

于 2012-10-07T20:13:49.023 に答える