论坛首页 综合技术版 python

generic views 新掌握的一个方法;)--extra_context

浏览 1077 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
时间:2007-08-13 关键字: generic views,django,python
今天要写一个程序的小模块---同一个网页里面,中间的内容区要显示所有的student,而在右侧边栏需要显示所有的class(班级;))

起初已经写完了显示所有student的代码了,用的就是generic views----太爽了,仅用了很少很少的代码。


newsList = {
    'queryset': Student.objects.all(),
}

urlpatterns = patterns('',
    (r'^$', 'django.views.generic.list_detail.object_list',dict(paginate_by=20, **newsList)),
)

note:
       paginate_by=20指每20个记录分页
       默认的模版名字为     (你的app名称)_list.html,如你的app为stu,那么默认模版就为stu_list.html

接下来需求变更,要求我在同一页面显示class列表...

呵呵,因为我比较懒,所以一来我不想修改现有代码,二来不愿意重新写views中关于查询数据库然后传递到模版等代码。我想generic views一定已经解决了同时传多个字典的情况了。呵呵,果然:你只需添加extra_context就可以了--还是非常少的代码

newsList = {
    'queryset': Student.objects.all(),
    'extra_context': {'classes': Class.objects.all()},
}

urlpatterns = patterns('',
    (r'^$', 'django.views.generic.list_detail.object_list',dict(paginate_by=20, **newsList)),
)

在模版里,你只需取classes的值就可以了,如:
{% for item in classes%}
           
  • {{ item.classes_name }}

  • {% endfor %}
       
    论坛首页 综合技术版 python

    跳转论坛:
    JavaEye推荐