django admin 删除登录页面

hsb*_*r13 5 python django

是否有办法删除 django 管理登录页面(mySite.com/admin)并使用已登录主站点(mySite.com)的用户会话?

如果需要任何代码请告诉我添加。

我的中间件settings.py是:

   MIDDLEWARE = [
        'django.contrib.sessions.middleware.SessionMiddleware',
        'django.contrib.auth.middleware.AuthenticationMiddleware',
        'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
              .
              .
              .
              .
              .
    ]
Run Code Online (Sandbox Code Playgroud)

更新:

原因是我希望管理员首先在网站中使用他的帐户登录,然后打开管理页面。其他用户会看到管理链接,但单击该链接后,他们会看到一条消息you don't have permission to see or change anything,但看不到其他任何内容。我只想myWebsite.com/admin重定向到admin:index用户是否登录以及myWebsite.com未登录。

小智 5

您可以使用主 urls.py 文件轻松完成此操作。只需将管理员登录 URL 重定向到您网站上的自定义登录页面即可。在下面的示例中,您会注意到在管理/登录和管理/注销之后使用了正常的 admin.site.url(我假设您还有一个自定义注销页面)。由于这些自定义视图位于首位,因此它们将优先使用,而不是 admin.site.urls 中的视图。

urlpatterns = [
    url(r'^admin/login', your_custom_login_view, name='custom_login_page_admin'),
    url(r'^admin/logout', your_custom_logout_view, name='custom_logout_view_admin'),
    url(r'^admin/', admin.site.urls),
]
Run Code Online (Sandbox Code Playgroud)


Die*_*ius 0

你为什么要这么做?管理页面用于管理目的,只是不再访问 /admin/ 路径,或者只是从您的 中删除管理urls.py,确保您将无法再访问管理页面...

但是,如果您想让用户使用自定义登录页面访问 django 管理本机页面,只需确保使用 is_staff 标记您的用户,以便他们可以访问本机 django 页面...

模型.py

from django.contrib.auth.models import User

class CustomUser(User):
    ... # Your new fields
Run Code Online (Sandbox Code Playgroud)

视图.py

def create_user(request):
    ...
    user, created = CustomUser.objects.get_or_created(
        ... # Your Custom + User Django fields
        is_staff = True # This will allow this user to access the admin page
    )
Run Code Online (Sandbox Code Playgroud)

如果您希望允许所有用户访问您的 django 管理页面而无需使用 Django 登录页面,您可以覆盖您的 CustomUser 模型以设置所有用户is_staff

class CustomUser(User):
        ... # Your new fields

        def save(self, *args, **kwargs):
            if not self.id: # This indentify if the registry is new...
                self.is_staff = True
            super(CustomUser, self).save(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)

观察:确保您的用户模型扩展了 Django 用户身份验证,有 2 个...一个更复杂,一个简单,请检查文档

https://docs.djangoproject.com/en/2.0/ref/contrib/auth/