Django内置的通用类视图
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_slug
为True
时,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:字段名称列表,其解释方式与
ModelForm
的Meta.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内置的通用类视图的更多相关文章
- Django 内置分页--Paginator类
官方文档 http://python.usyiyi.cn/django/topics/pagination.html 前端方法 http://www.tuicool.com/articles/RniU ...
- django内置的认证系统
Django自带的用户认证 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统.此时我们需要实现包括用户注册.用户登录.用户认证.注销.修改密码等功能,这还真是个麻烦的事情呢. Djang ...
- Django内置模板标签
Django内置标签总览 可以查询下表来总览Django的内置标签: 标签 说明 autoescape 自动转义开关 block 块引用 comment 注释 csrf_token CSRF令牌 cy ...
- Django内置信号
阅读目录(Content) Django中内置的signal 自定义信号 1.定义信号 2.注册信号 3.触发信号 回到顶部(go to top) Django中内置的signal Django中提供 ...
- Django内置Admin解析
Django 内置的admin是对于model中对应的数据表进行增删改查提供的组建 一.Django admin的内部依赖: 依赖的app django.contrib.auth django.con ...
- Django(60)Django内置User模型源码分析及自定义User
前言 Django为我们提供了内置的User模型,不需要我们再额外定义用户模型,建立用户体系了.它的完整的路径是在django.contrib.auth.models.User. User模型源码分析 ...
- 第三章:模版层 - 2:Django内置模板标签
Django内置标签总览 可以查询下表来总览Django的内置标签: 标签 说明 autoescape 自动转义开关 block 块引用 comment 注释 csrf_token CSRF令牌 cy ...
- Django内置Admin
Django内置的Admin是对于model中对应的数据表进行增删改查提供的组件,使用方式有: 依赖APP: django.contrib.auth django.contrib.contenttyp ...
- Django内置分页
一.django内置分页 from django.shortcuts import render from django.core.paginator import Paginator, EmptyP ...
随机推荐
- JAVA基础第五组(5道题)
21.[程序21] 题目:求1+2!+3!+...+20!的和 1.程序分析:此程序只是把累加变成了累乘. 思路:用递归的思想. package com.niit.homework1; import ...
- 第1周-java作业总结与建议
1. 本周作业简评与建议 存在的问题: 这周的作业普遍存在一个格式混乱的问题.请认真学习Markdown,我们后面的作业都要使用Markdown.Markdown学习请参考http://group.c ...
- Swing-setAlignmentX()用法-入门
先看下API: public void setAlignmentX(float alignmentX) 设置垂直对齐方式. 参数: alignmentX - 新的垂直对齐方式 网上关于这个函数的详细情 ...
- 201521123113 《Java程序设计》第4周学习总结
1.本周学习总结 1.1 尝试使用思维导图总结有关继承的知识点. 1.2 使用常规方法总结其他上课内容. 设计类的技巧:类名和方法名要能够体现他们的职责,类名首字母要大写 如何识别一个类 方法.属性的 ...
- 201521123017 《Java程序设计》第11周学习总结
1. 本周学习总结 2. 书面作业 Q1.互斥访问与同步访问 完成题集4-4(互斥访问)与4-5(同步访问) 1.1 除了使用synchronized修饰方法实现互斥同步访问,还有什么办法实现互斥同步 ...
- 201521123055 《Java程序设计》第9周学习总结
1. 本章学习总结 2. 书面作业 Q.1常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自己以前编写的代码中经常出现什么异常.需要捕获吗(为什么)?应如何避免? 1.3 什么样的 ...
- Java 第十周总结
1. 本周学习总结 2. 书面作业 1.finally (题目4-2) 1.1 截图你的提交结果(出现学号) 1.2 4-2中finally中捕获异常需要注意什么? finally创建一个代码块.该代 ...
- 201521123030 《Java程序设计》 第9周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 本次PTA作业题集异常 常用异常 1.题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自己 ...
- 201521123014 《Java程序设计》第10周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 1.关于异常上次作业已经概括得差不多了,创建自己的异常时可以使用Java类库中已经定义好的类,也可自定义异常 ...
- SAP高可用性(HA)
1.SAP系统高可用的要求 高可用性是从终端用户的角度来需求,及要求最大化系统的可用性.其目的是降低意外系统关闭时间(服务器生效.存储失效.操作系统失败--),减少预期系统关闭时间(系统及架构的维护. ...