zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    03_ if 练习 _ little2big
    uva 11275 3D Triangles
    uva 12296 Pieces and Discs
    uvalive 3218 Find the Border
    uvalive 2797 Monster Trap
    uvalive 4992 Jungle Outpost
    uva 2218 Triathlon
    uvalive 3890 Most Distant Point from the Sea
    uvalive 4728 Squares
    uva 10256 The Great Divide
  • 原文地址:https://www.cnblogs.com/thunderLL/p/7602698.html
Copyright © 2011-2022 走看看