首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Django内置通用类视图CBV及示例

属性: model: 视图要显示模型 queryset: 表示对象一个查询集.queryset优先于model. template_name: 字符串表示模板名称. context_object_name...参数,如果找到了这个参数,该方法使用这个参数执行一个基于逐渐查询.如果这个参数没有找到,该方法查找slug_url_kwarg参数,使用slug_field字段执行针对slug查询.当query_pk_and_slug...,并重定向到get_success_url(),可以覆盖该方法在以上行为之间添加额外动作.该方法必须返回一个HttpResponse. form_invalid(form):如果表单验证失败,则使用已填充表单数据和错误信息重新渲染上下文...timezone from django.views.generic.detail import DetailView from django.views.generic.edit import CreateView...context_object_name = 'employee_detail' #指定获取模型列表数据保存变量名。这个变量会被传递给模板。

3.2K10
您找到你想要的搜索结果了吗?
是的
没有找到

Django内置通用类视图及实例

get_context_data(**kwargs): 返回显示对象上下文数据,通过覆盖该方法返回额外上下文 2.DetailView ?...属性: model: 视图要显示模型 queryset: 表示对象一个查询集.queryset优先于model. template_name: 字符串表示模板名称. context_object_name...,并重定向到get_success_url(),可以覆盖该方法在以上行为之间添加额外动作.该方法必须返回一个HttpResponse. form_invalid(form):如果表单验证失败,则使用已填充表单数据和错误信息重新渲染上下文...django.views.generic.edit import CreateView, UpdateView, DeleteView from django.core.urlresolvers import...context_object_name = 'employee_detail' #指定获取模型列表数据保存变量名。这个变量会被传递给模板。

2.9K40

django 1.8 官方文档翻译: 3-4-5 内建基于类视图API

基于类视图在URL 模式中部署使用as_view() 类方法: urlpatterns = [ url(r'^view/$', MyView.as_view(size=42)), ] 视图参数线程安全性...传递给视图参数在视图每个实例之间共享。...传递给as_view() 参数将赋值给服务请求实例。利用前面的例子,这表示对MyView每个请求都可以使用 self.size。...它们不能满足项目中所有的需求,在这种情况下有Mixin 可以扩展基础视图功能。 Django 通用视图建立在基础视图之上,用于作为经常用到功能快捷方式,例如显示对象详细信息。...Django 文档协作翻译小组人手紧缺,有兴趣朋友可以加入我们,完全公益性质。

83320

django 1.8 官方文档翻译: 3-4-3 使用基于类视图处理表单

如果你想使用一个自定义ModelForm(例如添加额外验证),只需简单地在你视图上设置form_class。...首先我们需要添加get_absolute_url() 到我们Author 类中: #models.py from django.core.urlresolvers import reverse from...注意这里我们是如何配置通用基于类视图;我们自己没有写任何逻辑: #views.py from django.views.generic.edit import CreateView, UpdateView..., DeleteView from django.core.urlresolvers import reverse_lazy from myapp.models import Author class...在这个视图中,请确保你没有将created_by 包含进要编辑字段列表,并覆盖form_valid() 来添加这个用户: #views.py from django.views.generic.edit

1.8K20

类视图 vs. 函数视图

介绍 无论是类视图还是基于函数视图, 最终绑定到 URL Conf 都是函数. 为什么这么说? 函数绑定到 URL 上面很显式证明了绑定是函数, 这一点毋庸置疑。...调用后, 视图将请求传递给dispatch() 方法,该方法将根据请求类型(GET, POST, PUT, etc)执行响应方法(详情参考django/views/generic/base.py,...你可以在django.views.generic引用它们....#2 观点 「仅使用django.views.generic.View, 不用GV」 此观点认为, View 就足够了, 并且 View 是真正CBV, 而通用视图则不是真正 CBV....Django 官方建议是: 如果你难以将自己视图实现为通用视图(重点是generic views)子类, 那么你直接使用基于 View 视图或功能视图, 只编写你所需代码更更加有效.

2.4K10

diango之基于内置视图CBS编程

Class-based views是Django为解决建站过程中常见呈现模式而建立。...django自带view如下表所示: 类名 功能 例子 View 基本View, 可以在任何时候使用 见后面详细介绍 RedirectView 重新定向到其他URL 将访问"/log-in/"用户重新定向到...Generic date views 显示一段时间内对象 按时间归类博客 2....使用mixin可以为class提供额外功能,但它自身却不能单独使用类. 在具有多继承能力编程语言中, mixin可以为类增加额外功能或方法....在Django中, 我们可以使用mixin为CBVs提供更多扩展性, 当然在类继承过程中, 我们推荐以下原则: Django自身提供View永远在最右边 mixin依次在以上view左边 mixin

69330

djangourl路由配置及渲染方式

今天我们学习如何配置url、如何参、如何命名、以及渲染方式,内容大致有以下几个方面。...创建视图函数并访问 创建app djangourl规则 捕获参数 路径转换器 正则表达式 额外参数 渲染方式 ---- 创建视图并访问   项目中自带Python文件中,并没有带有视图,因此我们自己创建一个...)额外参数,是字典类型,传递给view name     :(可有可无)url名字 4、在url中捕获参数    尖括号   可以捕获参数,传递给视图   本来捕获是字符串   ...使用时,首先要导入进来 form django.url import re_path   参数跟path里相同   下面看正则表达式方法用什么捕获方式 第一种是分组,在视图中根据参数名参 re_path...8、传递额外参数   当在路由中传入额外参数时,如果kwargs中key与捕获参数不一致,按照kwargs为准。 ? ? ?

3K20

基于类通用视图:ListView 和 DetailView

DjangoURL 模式配置方式就是通过 url 函数将 URL 和视图函数绑定。...好在将类视图转换成函数视图非常简单,只需调用类视图 as_view() 方法即可(至于 as_view 方法究竟是如何将一个类转换成一个函数目前不必关心,只需要在配置 URL 模式是调用 as_view...所以我们使了 self.kwargs.get('pk') 来获取从 URL 捕获分类 id 。...下面我们就来将 detail 视图函数转换为等价类视图 PostDetailView,代码如下: blog/views.py from django.views.generic import ListView...这部分对应着 detail 视图函数中生成评论表单、获取 post 下评论列表代码部分。这个方法返回是一个字典,这个字典就是模板变量字典,最终会被传递给模板。

2.6K70

DjangoBlog|12 博客文章删除功能(优化版)

上一篇我们是直接新建了一个博客删除页面,然后操作对文章删除,但就文章删除这个功能来说,其实是没有必要再额外新建一个页面的。...<a href="{% <em>url</em> 'delete_article' article.pk %}" style="text-decoration:none;font-size: 12px;text-align...前端页面我们修改好后,我们还需要改下DeleteArticleView视图,需要注释掉视图类中<em>的</em>template_name,现在我们利用弹框处理,就没必要设置<em>额外</em><em>的</em>模板了。...# 删除博客 class DeleteArticleView(<em>DeleteView</em>): model = Article success_<em>url</em> = reverse_lazy('home'...,raphael.js是一个可以渲染可缩放矢量图形 (SVG) <em>的</em>js库,这个被引入本来是<em>django</em>-mdeditor中渲染md内容用<em>的</em>,暂时不知道为什么会和Bootstrap<em>的</em>modal冲突,按上面修改就可以解决问题

70120

Django 官方推荐姿势:类视图

于是,django 把这些相同逻辑代码抽取了出来,写成了一系列通用视图函数,即基于类通用视图(Generic Class Based View)。...在 DjangoURL 模式配置方式就是通过 url 函数将 URL 和视图函数绑定。...比如 path('', views.index, name='index'),它第一个参数是 URL 模式,第二个参数是视图函数 index。对 url 函数来说,第二个参数传入必须是一个函数。...好在将类视图转换成函数视图非常简单,只需调用类视图 as_view() 方法即可(至于 as_view 方法究竟是如何将一个类转换成一个函数目前不必关心,只需要在配置 URL 模式是调用 as_view...所以我们使了 self.kwargs.get('pk') 来获取从 URL 捕获分类 id

1.3K20

django 1.8 官方文档翻译: 3-4-1 基于类视图

如果你只是修改基于类视图一些简单属性,你可以将它们直接传递给as_view()方法调用: from django.conf.urls import url from django.views.generic...")), ] 传递给as_view()参数将覆盖类中属性。...子类化通用视图 第二种,功能更强一点使用通用视图方式是继承一个已经存在视图并在子类中覆盖其属性(例如template_name)或方法(例如get_context_data)以提供新或方法。...Django 有一个通用视图TemplateView来做这件事,所以我们可以简单地子类化它,并覆盖模板名称: # some_app/views.py from django.views.generic...django.views.generic import ListView from books.models import Book class BookListView(ListView):

84730

基于django视频点播网站开发-step6-个人中心功能

从本讲起,我们开始个人中心功能开发。个人中心里面包括个人资料、修改密码、订阅设置、意见反馈这四部分。通过这部分开发,我们将会接触到更多django用法。 <!...'), 可以看到,这里我们需要一个int参数做为主键,并传递给视图类ProfileView。...下面我们转向ProfileView,它写法超级简单 class ProfileView(LoginRequiredMixin,AuthorRequiredMixin, generic.UpdateView...,就实现了个人资料更新,再次彰显了django框架强大。...当更新成功后,django会回调get_success_url来将结果告诉模板,因此我们可以在get_success_url里面做一些定制工作,我们可以一些自己参数。

1.1K00

02.Django基础二之URL路由系统

三 分组命名匹配   上面的示例使用简单正则表达式分组匹配(通过圆括号)来捕获URL并以位置参数形式传递给视图。   ...在更高级用法中,可以使用分组命名匹配正则表达式组来捕获URL并以关键字参数形式传递给视图。   在Python正则表达式中,分组命名正则表达式组语法是(?...传递额外参数给视图函数(了解)     URLconfs 具有一个钩子,让你传递一个Python 字典作为额外参数传递给视图函数。     ...django.conf.urls.url() 函数可以接收一个可选第三个参数,它是一个字典,表示想要传递给视图函数额外关键字参数。     ...根据Django 视图标识和将要传递给参数,获取与之关联URL。   第一种方式是我们在前面的章节中一直讨论用法。

1.5K20
领券