1.ListView



表示对象列表的一个页面.

执行这个视图的时候,self.object_list将包含视图正在操作的对象列表(通常是一个查询集,但不是必须).

属性:

  • model: 指定模型
  • tempalta_name:模板文件
  • queryset:指定一个经过过滤的对象列表,将取代model提供的值
  • context_object_name: 指定要在上下文中使用的变量的名称

方法:

  • get_queryset():获取此视图的对象列表.必须是可迭代或者可以使查询集.默认返回queryset属性.可以通过重写该方法实现动态过滤.让这种方式能够工作的关键点,在于当类视图被调用时,各种有用的对象被存储在self上,同request(self.request)一样,其中包含了从URLconf中获取到的位置参数(self.args)和关键字参数(self.kwargs).
  • get_context_data(**kwargs): 返回显示对象的上下文数据,通过覆盖该方法返回额外的上下文

    2.DetailView



执行这个视图的时候,self.object将包含视图正在操作的对象.

属性:

  • model: 视图要显示的模型
  • queryset: 表示对象的一个查询集.queryset的值优先于model的值.
  • template_name: 字符串表示的模板名称.
  • context_object_name: 指定在上下文中使用的变量的名称.
  • pk_url_kwarg: URLconf中,包含逐渐的关键字参数的名称.默认为'pk'.
  • get_context_data:返回显示对象的上下文数据.

方法:

  • get_queryset():返回用来获取本视图显示对象的queryset.如果设置了queryset属性,get_queryset()默认返回它的值.
  • get_object(queryset=None):返回该视图要显示的单个对象.如果提供了queryset,该queryset将作为对象的查询源,否则,将使用get_queryset().get_object()从视图的所有参数中查找pk_url_kwarg参数,如果找到了这个参数,该方法使用这个参数的值执行一个基于逐渐的查询.如果这个参数没有找到,该方法查找slug_url_kwarg参数,使用slug_field字段执行针对slug的查询.当query_pk_and_slugTrue时,get_object()将使用主键和slug执行查询.
  • get_context_data(**kwargs):返回显示对象的上下文数据.这个方法的基本实现需要object属性被视图赋值(即使是None).它返回一个包含这些内容的字典:

       object:这个视图显示的对象(self.object)

      context_object_name:self.object也将存储在get_context_object_name()返回的名称中,该名称默认为模型的小写名称.

    3.FormView



显示表单的视图,验证错误时,重新显示表单并显示错误信息;成功时,重定向到一个新的URL.

属性:

  • form_class:要实例化的Form类.
  • success_url:表单成功处理后重定向到的URL.
  • tamplate_name:字符串表示的模板名称.

    方法:
  • get_success_url():决定在表单成功验证后重定向到的URL,默认返回success_url.
  • form_valid(form):在表单验证成功后调用该方法(注意并没有对数据进行操作,例如保存!),并重定向到get_success_url(),可以覆盖该方法在以上行为之间添加额外的动作.该方法必须返回一个HttpResponse.
  • form_invalid(form):如果表单验证失败,则使用已填充的表单数据和错误信息重新渲染上下文.
  • get_context_data(**kwargs):返回显示对象的上下文数据.

    4.CreateView



    显示用于创建对象的表单的视图,通过验证错误信息重新显示视图,并且保存对象.

    属性:

  • tamplate_name:
  • form_class:
  • fields:字段名称列表,其解释方式与ModelFormMeta.fields相同.如果你是自动生成表单类,那么该属性不能省略.
  • success_url:
  • model:
  • queryset:
  • context_object_name:
  • pk_url_kwarg:

    方法:
  • get_queryset():
  • get_object():
  • form_valid():
  • get_context_data(**kwargs):

    (未填写属性和方法的使用同上)

    5.UpdateView

显示用于编辑现有对象的表单的视图,重新显示具有验证错误信息的视图,并且保存对象.这里使用从对象模型自动生成的表单(除非手动制定表单类).

该视图用法与CreateView基本相同,仅在BaseUpdateView中对get()post()的内部实现有区别.

6.DeleteView

显示确认页面并删除现有对象的视图.仅当请求方法为POST时,才会删除给定的内容.如果此视图是通过GET提取的,它将显示一个确认页面,其中包含POST到同一网址的表单.

属性:

  • tamplate_name:
  • success_url:
  • model:
  • queryset:
  • context_object_name:
  • pk_url_kwarg:

    **方法:*
  • get_object():
  • get_queryset():
  • *get_context_data(**kwargs):*
  • delete(request, args, **kwargs):*在获取到的对象上调用delete()方法,然后重定向到success_url.



    更详细请参考Django文档内建类视图API

Django内置的通用类视图的更多相关文章

  1. Django 内置分页--Paginator类

    官方文档 http://python.usyiyi.cn/django/topics/pagination.html 前端方法 http://www.tuicool.com/articles/RniU ...

  2. django内置的认证系统

    Django自带的用户认证 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统.此时我们需要实现包括用户注册.用户登录.用户认证.注销.修改密码等功能,这还真是个麻烦的事情呢. Djang ...

  3. Django内置模板标签

    Django内置标签总览 可以查询下表来总览Django的内置标签: 标签 说明 autoescape 自动转义开关 block 块引用 comment 注释 csrf_token CSRF令牌 cy ...

  4. Django内置信号

    阅读目录(Content) Django中内置的signal 自定义信号 1.定义信号 2.注册信号 3.触发信号 回到顶部(go to top) Django中内置的signal Django中提供 ...

  5. Django内置Admin解析

    Django 内置的admin是对于model中对应的数据表进行增删改查提供的组建 一.Django admin的内部依赖: 依赖的app django.contrib.auth django.con ...

  6. Django(60)Django内置User模型源码分析及自定义User

    前言 Django为我们提供了内置的User模型,不需要我们再额外定义用户模型,建立用户体系了.它的完整的路径是在django.contrib.auth.models.User. User模型源码分析 ...

  7. 第三章:模版层 - 2:Django内置模板标签

    Django内置标签总览 可以查询下表来总览Django的内置标签: 标签 说明 autoescape 自动转义开关 block 块引用 comment 注释 csrf_token CSRF令牌 cy ...

  8. Django内置Admin

    Django内置的Admin是对于model中对应的数据表进行增删改查提供的组件,使用方式有: 依赖APP: django.contrib.auth django.contrib.contenttyp ...

  9. Django内置分页

    一.django内置分页 from django.shortcuts import render from django.core.paginator import Paginator, EmptyP ...

随机推荐

  1. 201521123062《Java程序设计》第8周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 1.2 选做:收集你认为有用的代码片段 for (int i = 0; i < list.size(); ...

  2. 201521123095 《Java程序设计》第9周学习总结

    1. 本周学习总结 2. 书面作业 本次PTA作业题集异常 Q1.常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自己以前编写的代码中经常出现什么异常.需要捕获吗(为什么)?应如何 ...

  3. ThinkPHP空操作及命名空间

    空操作是指访问不存在的路径: 解决方法:在控制其中创建 _empty方法 空控制器是指访问存在的控制器: 解决方法:创建EmptyController控制器 命名空间: 初识命名空间是Library: ...

  4. 在linux下通过hexdump生成一个十六进制的文本保存文件,解析此文件转变成正常源代码文件。

    举例说明: 此十六进制保存的文件为此源代码hexdump生成的: #include<stdio.h> #include<string.h> #include<stdlib ...

  5. python基础之字典、赋值补充

    字典常用操作: 存/取info_dic={'name':'egon','age':18,'sex':'male'} print(info_dic['name11111111']) print(info ...

  6. 从JS和jQuery浅谈DOM操作,当我们在获取时,究竟获取了什么

    0.写在前面的话 自己对前端的东西一直不是很熟,现在开始要想办法从前端各个地方去获取想要的属性值的时候,也基本是在网上现炒现卖,几周下来,发现自己还是迷迷糊糊,可以算是一无所获. 所以就抽时间,把这一 ...

  7. Hibernate注解配置与XML配置区别

    注解配置的方式与xml很很多类似: 首先是需要加入4个jar包:hibernate-commons-annotations.jar . hibernate-annotations.jar.ejb3-p ...

  8. appium实例编写(1)---以ContactsTest.apk 操作为例

    详情参照   http://www.cnblogs.com/puresoul/p/4696825.html#3326873   自己练习一遍 前言: appium环境搭建参照另一篇博客:http:// ...

  9. Linux下服务器重启

    Linux关闭和重启系统一般使用相同的命令可以实现. 在Linux系统下常用在关机/重启命令有shutdown.halt.reboot和init,但每个命令的内部工作过程是不同的. 1.shutdow ...

  10. linux 命令随笔 ls cd pwd mkdir rm mv cp cat nl

    Linux 命令练习 ls命令 ls就是list的简写,目的是打印当前目录下的清单 格式 ls[选项][目录名] 常用参数 -a –all 列出目录下的所有文件,包括以 . 开头的隐含文件 -l 除了 ...