python - django admin 删除登录页面
问题描述
无论如何要删除 django 管理员登录页面(mySite.com/admin)并使用已登录主站点(mySite.com)的用户会话?
如果需要任何代码,请告诉我添加。
我的中间件settings.py
是:
MIDDLEWARE = [
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
.
.
.
.
.
]
更新:
原因是我希望管理员首先在网站上使用他的帐户登录,然后打开管理页面。其他用户会看到管理员链接,但在单击该链接后,他们会看到一条消息you don't have permission to see or change anything
,但他们什么也看不到。我只想myWebsite.com/admin
重定向到admin:index
用户是否登录,myWebsite.com
如果他没有登录。
解决方案
创建一个自定义子类AdminSite
并覆盖该login()
方法。像这样的东西:
class CustomAdminSite(admin.AdminSite):
def login(self, request, extra_context=None):
if not request.user.is_authenticated:
# not authenticated, redirect to main login page
login_path = reverse('login')
return HttpResponseRedirect(login_path)
if self.has_permission(request):
# Already logged-in, redirect to admin index
index_path = reverse('admin:index', current_app=self.name)
return HttpResponseRedirect(index_path)
else:
# Logged in, but doesn't have required permissions
return render(...) # render a template with your error message
按照 Django 文档了解如何自定义 AdminSite 类。
推荐阅读
- javascript - 无法使用计划功能从 Firestore 读取数据
- python - 我正在尝试更高级的 Discord 机器人状态更新,并开始收到“socket.send() 引发的异常”。并且没有异步命令现在可以工作
- swift - Firestore whereField 和 sort 在 Swift 中不能一起工作
- javascript - 如何在 d3 图表中设置/添加整体图表填充到 Circos/Chord?
- javascript - 如何在js中通过return function()传递函数变量
- python - 我们可以计算 Roc_auc_score 并显示为每月
- java - jaxb - 使用 javadoc 解组`>` 字符问题
- sql - 插入 SQL 值 'NULL' 它与 NULL IN SQL 的工作方式相同吗?
- c++ - 基类未定义 (CPP)
- java - 当flush()抛出异常时,持久性上下文不更新