1

意見:

def details(request, id):
    event = Event.objects.filter(id=id)
    return render(request, 'details.html', {'Event' : event})

テンプレート:

{% if Event %}

    <h1>Event Name: {{ Event.name }}</h1>

{% else %}

    No Event.

{% endif %}

モデル:

class Event(models.Model):
    name = models.CharField(max_length = 30)
    artist = models.ManyToManyField(Artist)
    venue = models.ForeignKey(Venue)
    event_date = models.DateTimeField('event date')
    on_sale = models.DateTimeField('on sale time')


    def __unicode__(self):
        return unicode(self.name)

ページをロードすると、ロードされるだけEvent Name:です。属性を削除する.nameと、データベースに入力されたときにイベントが読み込まれますが、オブジェクトから属性は読み込まれません。ヘルプ/アドバイスをいただければ幸いです。

4

1 に答える 1

5

フィルターの代わりに get を使用する必要があります。

event = Event.objects.get(id=id)

テンプレートでフィルターを使用したい場合は、これを試してください:

{% for item in Event %}
    <h1>Event Name: {{ item.name }}</h1>
{% empty %}
    No Event.
{% endfor %}
于 2013-06-21T17:48:07.833 に答える