Django框架中的对象列表视图使用示例

 更新时间:2015年07月21日 15:18:10   投稿:goldensun  
这篇文章主要介绍了Django框架中的对象列表视图使用示例,Django是重多Python人气web框架中最为著名的一个,需要的朋友可以参考下

direct_to_template 毫无疑问是非常有用的,但Django通用视图最有用的地方是呈现数据库中的数据。 因为这个应用实在太普遍了,Django带有很多内建的通用视图来帮助你很容易 地生成对象的列表和明细视图。

让我们先看看其中的一个通用视图: 对象列表视图。 我们使用第五章中的 Publisher 来举例:

class Publisher(models.Model):
  name = models.CharField(max_length=30)
  address = models.CharField(max_length=50)
  city = models.CharField(max_length=60)
  state_province = models.CharField(max_length=30)
  country = models.CharField(max_length=50)
  website = models.URLField()

  def __unicode__(self):
    return self.name

  class Meta:
    ordering = ['name']

要为所有的出版商创建一个列表页面,我们使用下面的URL配置:

from django.conf.urls.defaults import *
from django.views.generic import list_detail
from mysite.books.models import Publisher

publisher_info = {
  'queryset': Publisher.objects.all(),
}

urlpatterns = patterns('',
  (r'^publishers/$', list_detail.object_list, publisher_info)
)

这就是所要编写的所有Python代码。 当然,我们还需要编写一个模板。 我们可以通过在额外参数字典中包含一个template_name键来显式地告诉object_list视图使用哪个模板:

from django.conf.urls.defaults import *
from django.views.generic import list_detail
from mysite.books.models import Publisher

publisher_info = {
  'queryset': Publisher.objects.all(),
  **'template_name': 'publisher_list_page.html',**
}

urlpatterns = patterns('',
  (r'^publishers/$', list_detail.object_list, publisher_info)
)

在缺少template_name的情况下,object_list通用视图将自动使用一个对象名称。 在这个例子中,这个推导出的模板名称将是 "books/publisher_list.html" ,其中books部分是定义这个模型的app的名称, publisher部分是这个模型名称的小写。

这个模板将按照 context 中包含的变量 object_list 来渲染,这个变量包含所有的书籍对象。 一个非常简单的模板看起来象下面这样:

{% extends "base.html" %}

{% block content %}
  <h2>Publishers</h2>
  <ul>
    {% for publisher in object_list %}
      <li>{{ publisher.name }}</li>
    {% endfor %}
  </ul>
{% endblock %}

(注意,这里我们假定存在一个base.html模板。)

这就是所有要做的事。 要使用通用视图酷酷的特性只需要修改参数字典并传递给通用视图函数。 附录D是通用视图的完全参考资料;本章接下来的章节将讲到自定义和扩展通用视图的一些方法。

相关文章

  • Python分割列表list方法使用(平均n等份拆成)

    Python分割列表list方法使用(平均n等份拆成)

    本文主要介绍了Python分割列表list方法使用(平均n等份拆成),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • 如何用Python来搭建一个简单的推荐系统

    如何用Python来搭建一个简单的推荐系统

    这篇文章主要介绍了如何用Python来搭建一个简单的推荐系统,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • python实现二分类和多分类的ROC曲线教程

    python实现二分类和多分类的ROC曲线教程

    这篇文章主要介绍了python实现二分类和多分类的ROC曲线教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • Python ArgumentParse的subparser用法说明

    Python ArgumentParse的subparser用法说明

    这篇文章主要介绍了Python ArgumentParse的subparser用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • 基于Python实现成语填空游戏的示例代码

    基于Python实现成语填空游戏的示例代码

    成语填空想必大家都是十分熟悉的了,特别是有在上小学的家长肯定都有十分深刻的印象。当然了你也别小看了成语调控小游戏,有的时候知识储备不够,你还真的不一定猜得出来是什么。本文就来用Python编写一个简单的成语填空游戏,感兴趣的可以了解下
    2023-02-02
  • unittest+coverage单元测试代码覆盖操作实例详解

    unittest+coverage单元测试代码覆盖操作实例详解

    这篇文章主要为大家详细介绍了unittest+coverage单元测试代码覆盖操作的实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04
  • python datetime时间格式的相互转换问题

    python datetime时间格式的相互转换问题

    这篇文章主要介绍了python datetime时间格式的相互转换问题,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • python用Pygal如何生成漂亮的SVG图像详解

    python用Pygal如何生成漂亮的SVG图像详解

    本篇文章讲述python如何用 Pygal 来生成漂亮的 SVG 图表,并能够利用 Python 中的 Flask 框架来显示你的 SVG 图像,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-02-02
  • python列表倒序的几种方法(切片、reverse()、reversed())

    python列表倒序的几种方法(切片、reverse()、reversed())

    本文主要介绍了python列表倒序的几种方法(切片、reverse()、reversed()),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • python中list.copy方法用法详解

    python中list.copy方法用法详解

    这篇文章主要给大家介绍了关于python中list.copy方法使用的相关资料,文中还介绍了python list.copy() 和 copy.deepcopy()区别,需要的朋友可以参考下
    2023-02-02

最新评论