在列表视图子类中重写 template_name

override template_name in listview subclass

我有一个 BookListView,它显示我图书馆中的所有书籍。我还有一个名为 BookSearchListView 的 BookListView 子类。我正在尝试使用 template_name 变量覆盖模板。但这没有任何效果。

views.py

class BookListView(generic.ListView):
   model=Book
   paginate_by=15



class BookSearchListView(BookListView):
   paginate_by=10
   template_name='booksearch_list.html'
   def get_queryset(self):
       pass

urls.py

url(r'^ksiazki/', views.BookListView.as_view(), name='books'),

url(r'^szukaj/', views.BookSearchListView.as_view(), name='search-list-view'),

我试图覆盖视图和网址中的 template_name,但在这两种情况下它都保留 book_list.html,这是 BookListViews 的默认模板,而不是 booksearch_list.html。

如果您的 booksearch_list.html 模板位于 templates/appname/ 文件夹中,那么在您的 BookSearchListView 中,template_name 应该是:

template_name='appname/booksearch_list.html'