首页
学习
活动
专区
圈层
工具
发布

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' #指定获取的模型列表数据保存的变量名。这个变量会被传递给模板。

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

    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' #指定获取的模型列表数据保存的变量名。这个变量会被传递给模板。

    3.8K40

    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 文档协作翻译小组人手紧缺,有兴趣的朋友可以加入我们,完全公益性质。

    1K20

    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

    2.5K20

    类视图 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.8K10

    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

    86330

    django中url路由配置及渲染方式

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

    3.5K20

    基于类的通用视图:ListView 和 DetailView

    在 Django 中 URL 模式的配置方式就是通过 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 下的评论列表的代码部分。这个方法返回的值是一个字典,这个字典就是模板变量字典,最终会被传递给模板。

    3.1K70

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

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

    1K20

    Django 官方推荐的姿势:类视图

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

    1.6K20

    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):

    1.1K30

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

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

    1.3K00

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

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

    1.8K20
    领券