首页 > 编程 > Python > 正文

在Python的Django框架中显示对象子集的方法

2020-01-04 18:00:46
字体:
来源:转载
供稿:网友

这篇文章主要介绍了在Python的Django框架中显示对象子集的方法,即queryset的参数的使用相关,需要的朋友可以参考下
现在让我们来仔细看看这个 queryset 。 大多数通用视图有一个queryset参数,这个参数告诉视图要显示对象的集合。
举一个简单的例子,我们打算对书籍列表按出版日期排序,最近的排在最前:
 

  1. book_info = { 
  2.   'queryset': Book.objects.order_by('-publication_date'), 
  3.  
  4. urlpatterns = patterns(''
  5.   (r'^publishers/$', list_detail.object_list, publisher_info), 
  6.   **(r'^books/$', list_detail.object_list, book_info),** 



这是一个相当简单的例子,但是很说明问题。 当然,你通常还想做比重新排序更多的事。 如果你想要呈现某个特定出版商出版的所有书籍列表,你可以使用同样的技术:
 

  1. **apress_books = {** 
  2.   **'queryset': Book.objects.filter(publisher__name='Apress Publishing'),** 
  3.   **'template_name''books/apress_list.html'** 
  4. **}** 
  5.  
  6. urlpatterns = patterns(''
  7.   (r'^publishers/$', list_detail.object_list, publisher_info), 
  8.   **(r'^books/apress/$', list_detail.object_list, apress_books),** 


注意 在使用一个过滤的 queryset 的同时,我们还使用了一个自定义的模板名称。 如果我们不这么做,通用视图就会用以前的模板,这可能不是我们想要的结果。
同样要注意的是这并不是一个处理出版商相关书籍的最好方法。 如果我们想要添加另一个 出版商页面,我们就得在URL配置中写URL配置,如果有很多的出版商,这个方法就不能 接受了。 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表