LOADING

Follow me

Django 通用视图
十一月 29, 2013|Whistler

Django 通用视图


  1. 通用视图
  2. Django 提供了 4 种通用视图(generic view),它们可以让开发人员创建遵循典型模式的应用程序:

  1. 页面列表/详细页面(与上面的例子类似)
  2. 基于数据的记录分类(对于新闻或 blog 站点非常有用)
  3. 对象的创建、更新和删除(CRUD)
  4. 简单直接的模板表示或简单地对 HTTP 重新进行定向
  5. 我们没有创建样板视图方法,而是将所有的业务逻辑都放入了 urls.py 文件中,它们都由 Django 提供的通用视图进行处理。
  6. 清单 33. jobs/urls.py 中的通用视图
  7. from django.conf.urls.defaults import *
  8. from jobs.models import Job

  9. info_dict = {
  10.     ‘queryset’: Job.objects.all(),
  11. }

  12. urlpatterns = patterns(‘django.views.generic.list_detail’,
  13.     (r’^$’, ‘object_list’, info_dict),
  14.     (r’^(?P<object_id>\d+)/$’, ‘object_detail’, info_dict),
  15. )
  16. 这个 urls.py 文件中的 3 个主要变化如下:
  17. info_dict 映射对象会为要访问的 Job 提供一个查询集。
  18. 它使用了 django.views.generic.list_detail,而不是 djproject.jobs.views。
  19. 真正的视图调用是 object_list 和 object_detail。
  20. 这个项目需要遵循一些要求才能让通用视图自动工作:
  21. 通用详细视图期望获得一个 object_id 参数。
  22. 模板遵循下面的命名模式:app_label/model_name_list.html (jobs/job_list.html) app_label/model_name_detail.html (jobs/job_detail.html)
  23. 列表模板处理一个名为 object_list 的列表。
  24. 详细模板处理一个名为 object 的对象。
  25. 更多选项可以通过 info_dict 来传递,其中包括指定每个页面中对象个数的 paginate_by 值。

版权声明:本文为博主原创文章,未经博主允许不得转载。

no comments
Share

发表评论