通用视图(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这样的格式查找模版,找不到就报错

浙公网安备 33010602011771号