Django:使用param登录管理员

2024-10-06 13:36:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我想要我的自定义“/login”页面。所以在settings.py中,我做了一个简单的LOGIN_URL = '/login'。但在此之前,我想开发所有其他更复杂的页面。我发现了一个简单但非常有效的黑客方法:

urlpatterns = [
    # blabla
    url(r'^admin/', include(admin.site.urls)),
    url(r'^login/$', RedirectView.as_view(
            url=reverse_lazy('admin:login'))),
    # blabla
]

这意味着:当用户没有连接时,他/她将被重定向到/login。在url中,/login被转换为'admin:login',即admin/login。这是一个“双”重定向。除此之外,一切正常:

  • 源URL:“/my_jobs
  • 已重定向到“login?next=/my_jobs
  • 已重定向到“/admin/login

所以我的问题是,我想再次传递RedirectView中的“next”参数。我发现了很多关于重定向和自定义登录的内容,但在stackoverflow上却没有发现(这不是重复的)。在


Tags: 方法pyurlsettingsadminmyjobslogin
1条回答
网友
1楼 · 发布于 2024-10-06 13:36:11

您可以将^{}设置为True,这样查询字符串就会附加到URL中。在

RedirectView(
    url=reverse_lazy('admin:login'),
    query_string=True,
    # You might want to set permanent=False, 
    # as it defaults to True for Django < 1.9
    permanent=False, 
)

注意,Django带有一个内置的^{}视图。您可以通过添加URL模式和一个简单的模板来启用它,这并不比上面的代码多多少工作量。在

相关问题 更多 >