Django中的ListView视图分析

首先当然是搞清楚ListView的继承关系。

ListView(MultipleObjectTemplateResponseMixin,BaseListView)

MultipleObjectTemplateResponseMixin(TemplateResponseMixin)

BaseListView(MultipleObjectMixin,View)

MultipleObjectMixin(ContextMixin)

假设我模型是Person(models.Model),现在要在查看所有的记录。我的自定义列表视图是Persons(ListView).

好的,先从在浏览器中输入一个URL开始,该地址经Django转换成对自定义视图类Persons.as_view的调用,结果就是得到类View里的函数view。在这里,开始请求的旅程。因为我们的请求方式是“GET”,函数view里部就会调用View.dispatch(),然后是BaseListView.get(),它的作用,一是调用get_queryset()取得查询的QuerySet,所以自定义列表视图中可以重载get_queryset这个方法,自定义你的QuerySet,比如加入一些过滤条件等等。再一个是调用get_context_data()函数,填入额外的内容,所以你可以重载该方法,但别忘记调用基类的get_context_data,其他你想保存的数据,当然是以字典形式,比如你想保存日期,查询条件等等。其实,你可以将这些数据保存到实例字段extra_context这个变量里,Django的机制就自动将数据保存起来,这样在视图内就能使用了。剩下的内容就是用视图渲染了。怎么都可以,看你的前端,我用Bootstrap。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值