django通用视图的使用

来源:互联网 发布:中国人口负增长 知乎 编辑:程序博客网 时间:2024/04/29 16:37

Django从1.3开始就已经加入了通用视图功能,基础的有baseview,templateview,扩展的有detailview和listview,在使用这些模板的时候,应该先阅读它的基类,然后对基类的属性进行赋值,再在views.py里面进行类的继承就可以了。不过有时如果需要自定义一些功能的话,可能需要重写一下基类的方法,这时记得在方法中调用父类的相应对象,这样就可以实现对自身所需对象的调用,之后在模板里面只需要调用你传入的参数即可。

比如要实现分页功能,只需要在url.py中传入page的参数,视图会自动帮你生成每页有n个对象的页面。

比如listview中,如果指定了model,不指定context_name的话,django会自动生成名为model_name_list的迭代器,迭代的对象为选择的model,这样在模板中就可以使用这个迭代器进行查询了。

比如listview中,如果要实现对model的某些逻辑操作,应该重写其的query_set方法,然后也可以在模板中调用经过逻辑处理后的迭代器了。

在通用视图中有个get_object的方法,可以返回需要的对象???

一般方法中的参数,kwargs之类的都是经过url传进来的参数。

在模板中如果需要访问对象的属性,可以用getattr函数进行访问。

PS:在迭代器进行逻辑操作后,返回的对象依然是可以迭代的对象。

0 0
原创粉丝点击