gpt4 book ai didi

python - 我们可以使用django中/admin的登录页面供自己使用吗?

转载 作者:太空狗 更新时间:2023-10-29 20:40:01 26 4
gpt4 key购买 nike

我可以使用位于 /admin 的登录页面供非员工用户登录吗?我在我的 Django 设置文件中使用了以下设置:

LOGIN_URL = '/admin/'
LOGIN_REDIRECT_URL = '/'

当我登录时,它不会将我重定向到根文件夹。我的做法是否正确?

注意:我在我的 View 中使用装饰器 @login_required

编辑

它使用以下 URL 登录管理站点:http://127.0.0.1:8000/admin/?next=/

最佳答案

非工作人员不能通过管理 View 登录,所以你不能。

有一个 Django View 可以完全满足您的需要,但是:django.contrib.auth.views.login

您可以轻松地将它添加到您的urlconf:

from django.contrib.auth.views import login

urlpatterns = ('',
#snip
url(r'^login/$', login)
)

查看文档以了解如何自定义其行为:https://docs.djangoproject.com/en/dev/topics/auth/#limiting-access-to-logged-in-users

您只需要为要使用的 View 定义一个模板,默认情况下,它应该位于 registration/login.html,但可以覆盖它。

更新

1) 对于 django 1.11+ 更好地使用 LoginView (即 from django.contrib.auth.views import LoginView)因为 login 代码实际上使用了 LoginView 而 login 的代码甚至有一个警告消息:

warnings.warn(
'The login() view is superseded by the class-based LoginView().',
RemovedInDjango21Warning, stacklevel=2
)

2) 您可能想要更改管理员登录页面的默认标题。这可以通过在上下文中提供 site_header 来完成。

更新后的版本看起来像这样:

from django.contrib.auth.views import LoginView

urlpatterns = [
# your patterns here,
url(r'^login/$',
LoginView.as_view(
template_name='admin/login.html',
extra_context={
'site_header': 'My custom header',
})),
]

关于python - 我们可以使用django中/admin的登录页面供自己使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10721143/

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