我正在使用this library在我的django项目中添加会话选项卡。我正在使用这一行从我的项目中调用模块的模板:
<li><a href="{% url 'user_sessions:session_list' %}">Sessions</a></li>
它可以工作,但现在我想为页面设置样式,为此我需要使用我自己的模板覆盖模块的模板。所以,正如模块说here,我在我自己的SessionListView
上继承了模块的views.py
来覆盖模板:
from user_sessions.views import SessionListView
class MySessionList(SessionListView):
template_name = 'user_sessions/session_list.html'
然后我把网址添加到我的urls.py
url(
regex=r'^account/sessions/$',
view=MySessionList.as_view(),
name='sessions',
),
然后我在我自己的项目上创建了我的模板,其位置如下:templates/user_sessions/session_list
。
但由于某种原因,我仍然看不到我的模板出现,模块的模板不断出现。任何人都可以帮我找到我做错的事吗?
SessionListView
默认使用user_sessions/session_list.html
,因此不需要自定义视图。
听起来Django在你的模板之前在user_sessions/session_list.html
应用程序中找到了user_sessions
模板。如果您的模板位于应用程序的templates
目录中,那么您可以通过在user_sessions
设置中将应用程序移到INSTALLED_APPS
上来解决此问题。
或者,如果将模板移动到'DIRS'
设置中TEMPLATES
列表中的目录,则Django将在检查应用程序模板目录之前找到您的模板。如果被覆盖的模板实际上不属于您的任何应用程序,则此更清晰,另一个优点是您不必重新排序INSTALLED_APPS
列表。
有关更多信息,请参阅overriding templates上的文档。