热门话题

Php 研究室

generic views 新掌握的一个方法;)--extra_context    作者:zjxplq发表于2009-05-19 13:31:45

	   

引用于http://www.javaeye.com/topic/111718
相关文章:
初识django, 一起进入python的世界吧
django心得:url可以做的更多
django 简化 view 函数的编写

推荐圈子: EXT
更多相关推荐 今天要写一个程序的小模块---同一个网页里面,中间的内容区要显示所有的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就可以了--还是非常少的代码

--------------------------------------------------------------------------------[code]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)),
)
[/code]--------------------------------------------------------------------------------
在模版里,你只需取classes的值就可以了,如:[code]{% for item in classes%}

{{ item.classes_name }}
{% endfor %}
[/code]

charo回复于2009-06-08 20:00:27
了解下~
xieaotian回复于2009-05-21 09:56:17
哦,如戏网不是作webgame,而是为webgame用户提供一个交流的平台而已。
zjxplq回复于2009-05-21 09:18:52
老仙真牛,又开了个如戏网,上去看了一下,可惜我不玩游戏
xieaotian回复于2009-05-19 17:51:38
我如戏网好像就是这么作的
回复主题
Copyright © 2008-2010 版权所属:中国Python联盟 www.okpython.com
京ICP备08012290号 村长QQ:81356625 E-mail:xieaotian@163.com