前端用户登录模板应该放在什么目录下?

What directory should the frontend user login template be put into?

因为我想在我的 Wagtail 网站上将管理员登录与用户登录分开,所以我尝试使用此 section of the documentation 中提到的登录页面设置将人们引导至自定义登录页面。我在#Wagtail 设置下的 WT 项目设置目录中的 base.py 文件夹中添加了以下设置:

WAGTAIL_FRONTEND_LOGIN_URL = '/login/'

WAGTAIL_FRONTEND_LOGIN_TEMPLATE = 'base/login.html'

我的项目的结构类似于 bakerydemo,因此有一个基础应用程序可以管理网站的许多共享部分。我将 login.html 放在基本应用程序的模板目录中。请参阅下方 link 的屏幕截图。

Screenshot of project directories

每当我尝试导航到我指定的登录 URL 时,我都会收到 404 错误。有没有我错过的设置?我是否将模板放在错误的目录中?仍在习惯 WT 构建项目的方式,因此非常感谢任何指示。

您应该只设置 WAGTAIL_FRONTEND_LOGIN_URLWAGTAIL_FRONTEND_LOGIN_TEMPLATE 之一,而不是两者都设置。

如果您想使用 Wagtail 自己的登录视图(位于 URL /_util/login/),但又想自定义其模板,则使用

WAGTAIL_FRONTEND_LOGIN_TEMPLATE。如果你沿着这条路走,像 'base/login.html' 这样的路径是正确的 - Django 将在所有模板目录中搜索与此路径匹配的文件。

WAGTAIL_FRONTEND_LOGIN_URL 用于提供您自己的视图代码。要使用它,您需要编写视图函数(很可能继承自 Django's LoginView)并将其注册到 URL 配置中,然后将 WAGTAIL_FRONTEND_LOGIN_URL 指向结果 URL.在这种情况下,您的视图函数将负责呈现适当的模板,因此 WAGTAIL_FRONTEND_LOGIN_TEMPLATE 不会起作用。