gpt4 book ai didi

python - 覆盖 Django 中的模板

转载 作者:行者123 更新时间:2023-11-30 21:57:24 24 4
gpt4 key购买 nike

我正在使用this library在我的 django 项目中添加 session 选项卡。我使用此行从我的项目中调用模块的模板:

<li><a href="{% url 'user_sessions:session_list' %}">Sessions</a></li>

它可以工作,但现在我想设置页面样式,为此我需要使用我自己的模板覆盖模块的模板。因此,正如模块所说 here ,我在自己的 views.py 上继承了模块的 SessionListView 来覆盖模板:

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

但由于某种原因,我仍然看不到 MY 模板出现,而是模块的模板不断出现。谁能帮我找出我做错了什么?

最佳答案

默认情况下,SessionListView 已使用 user_sessions/session_list.html,因此不需要您的自定义 View 。

听起来 Django 在 user_sessions 应用程序中在您的模板之前找到 user_sessions/session_list.html 模板。如果您的模板位于应用的 templates 目录中,则可以通过将应用移至 INSTALLED_APPS 设置中的 user_sessions 上方来解决此问题。

或者,如果您将模板移动到 TEMPLATES 设置中的 'DIRS' 列表中的目录,那么 Django 将在检查应用模板之前找到您的模板目录。如果您的覆盖模板并不真正属于您的任何应用,这会更清晰,另一个优点是您不必重新排序 INSTALLED_APPS 列表。

请参阅 overriding templates 上的文档了解更多信息。

关于python - 覆盖 Django 中的模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55263049/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com