django - ListView 调用 `get_template_names` 而不调用它
问题描述
我正在阅读 Django 源代码ListView
:
django/list.py
class MultipleObjectTemplateResponseMixin(TemplateResponseMixin):
template_name_suffix = '_list'
def get_template_names(self):
try:
names = super().get_template_names()
class ListView(MultipleObjectTemplateResponseMixin, BaseListView):
"""
Render some list of objects, set by `self.model` or `self.queryset`.
`self.queryset` can actually be any iterable of items, not just a queryset.
"""
当我定义ListView
时,template_name
自动分配
class IndexView(generic.ListView):
pass
MultipleObjectTemplateResponseMixin
我认为应该有一个分配步骤
class MultipleObjectTemplateResponseMixin(TemplateResponseMixin):
template_name_suffix = '_list'
def get_template_names(self):
try:
names = super().get_template_names()
....
template_name = self.get_template_names()
它如何调用get_template_names
而不调用它?
解决方案
get_template_names
render_to_response
在类的方法中调用,TemplateResponseMixin
该类是 的超类MultipleObjectTemplateResponseMixin
。
推荐阅读
- amazon-web-services - AWS CDK - 添加一个 s3 触发器来调用 lambda
- excel - 检查验证 InputTitle 或 InputMessage 是否为空
- javascript - 未处理的拒绝 (TypeError):无法将 undefined 或 null 转换为对象
- .htaccess - 当 url 包含 HTTPS 时,.htaccess 无法重写
- sapui5 - 类型错误:无法读取属性'
' 未定义的 - r - Take one row of each data frame in a list based on highest value and put them all in a new data frame in R
- c++ - 有没有更简洁的方法来初始化 unique_ptr
比这个? - c# - 在应用程序的发布版本中保留 try/catch 块
- c# - 如何检查哪个测试脚本是/将是最后一个执行?(使用 C# 和 NUnit)
- java - Is it possible to execute terminal-graphical-apps thru java-ProcessBuilder