• 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_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
  • 相关阅读:
    闭包
    关于this
    插件开发(对象级)
    IFC
    flex.css
    js移动端滑动事件
    Android 手机下输入框获取焦点时, 输入法挡住输入框的 bug
    vue 组件化spreadjs预览excel
    feign 熔断工厂 fallbackFactory的简单实现
    bat脚本批量启动程序
  • 原文地址:https://www.cnblogs.com/thunderLL/p/7602698.html
Copyright © 2020-2023  润新知