通用视图(generic)

在真实项目中会存在 结构相似的视图,据此 Django 提供了个通用视图系统( generic vi ws system ),通过通用视图系统开发人员可以进行快速开发
通用视图经常使用17个类,通过类明可以大体知道这个类是用来做什么的
from django.views import generic

  • View
  • TemplateView
  • RedirectView
  • ArchiveIndexView
  • YearArchiveView
  • MonthArchiveView
  • WeekArchiveView
  • DayArchiveView
  • TodayArchiveView
  • DateDetailView
  • DetailView
    继承:SingleObjectTemplateResponseMixin, BaseDetailView
    作用:渲染对象的“详细”视图。
  • FormView
  • CreateView
  • UpdateView
  • DeleteView
  • ListView
    继承:MultipleObjectTemplateResponseMixin, BaseListView
    作用:渲染一些对象列表,由“ self.model”或“ self.queryset”设置。实际上,self.queryset可以是任何可迭代的项目,而不仅仅是查询集。
  • GenericViewError

MultipleObjectTemplateResponseMixin

  • 作用: Mixin用于响应模板和对象列表
  • 继承: TemplateResponseMixin
    def get_template_names(self)
    """
    返回用于请求的模板名称列表。必须是一个列表,如果render_to_response被覆盖,则可能不会被调用。
    """
    get_template_names是对父类方法的重写,父类方法中检查template_name是否定义,未定义就抛出异常,定义则返回。重写的类中捕获了父类抛出的错误,设置为列表
    默认设置模版的格式:appName/modelName_list.html
    总结:如果不设置模版的名字,get_template_names会以appName/modelName_list.html这样的格式查找模版,找不到就报错
posted @ 2020-10-06 11:41  bibicode  阅读(240)  评论(0)    收藏  举报