Django通用视图没有收到对象(模板问题?)

时间:2010-04-08 17:24:20

标签: django django-templates

我的模特:

class Player(models.Model):
    player_name = models.CharField(max_length=50)
    player_email = models.CharField(max_length=50)

def __unicode__(self):
    return self.player_name

我的根urls.py

urlpatterns = patterns('',
    (r'^kroster/', include('djangosite.kroster.urls')),
    (r'^admin/(.*)', admin.site.root),
)

我的kroster urls.py

from djangosite.kroster.models import Player

info_dict = {
    'queryset': Player.objects.all(),
}

urlpatterns = patterns('',
    (r'^$', 'django.views.generic.list_detail.object_list', info_dict),
    (r'^(?P<object_id>\d+)/$', 'django.views.generic.list_detail.object_detail', info_dict),
)

我的player_list.html模板:

<h1>Player List</h1>

{% if error_message %}<p><strong>{{ error_message }}</strong></p>{% endif %}
<ul>
    {% for player in object.player_set.all %}
        <li id="{{ player.id }}">{{ forloop.counter }} .)&nbsp;&nbsp;{{ player }}</li>
    {% endfor %}
</ul>

可悲的是我的模板输出就是这个。

<h1>Player List</h1>
<ul>

</ul>

如果这是一个愚蠢的错误,请道歉。我的模板一定有问题。

2 个答案:

答案 0 :(得分:1)

列表视图的变量(除非另有说明)是object_list

详情请见object。此外,您还需要另一个详细信息视图模板。默认情况下,模板名称为:<app_label>/<model_name>_detail.html(除非您以不同方式指定)

所有内容都在 Generic views 中。

答案 1 :(得分:0)

您的模板应该是这样的:

<h1>Player List</h1>

{% if error_message %}<p><strong>{{ error_message }}</strong></p>{% endif %}
<ul>
    {% for player in object_list %}
        <li id="{{ player.id }}">{{ forloop.counter }} .)&nbsp;&nbsp;{{ player }}</li>
    {% endfor %}
</ul>