我有一个ProductListView
:
class ProductListView(ListView):
model = Product
template_name = 'products/product_list.html'
context_object_name = 'products'
字符串
我尝试创建另一个ListView
列表Product
:
class VoteView(ListView):
model = Product
template_name = 'recommendation/rec_product_list.html'
context_object_name = 'products'
型
但是当我试图在浏览器中访问VoteView
时,它出现错误:它呈现product_list.html
,而不是rec_product_list.html
。
所以我调试了一下,发现get_template_names()
返回了['recommendation/rec_product_list.html', 'products/product_list.html']
。
我可以通过插入以下代码来解决这个问题:
def get_template_names(self):
return ['recommendation/rec_product_list.html']
型
但是不知道是否有比这更好的方法。
谢谢
1条答案
按热度按时间kg7wmglp1#
我也有同样的问题,问题是在我的template_name配置中的应用程序名称。我使用了项目名称而不是应用程序名称,并且在项目模板文件夹中查找模板。找不到模板,ListView默默地从应用程序文件夹中获取默认模板。我发现这只是由于上面的get_template_names方法,因为它引发了错误,而不是默默地失败并获取默认值:)。