我不相信有一种简单的方法可以做你想做的事。一个用户一次登录的想法是 Django 工作方式的基础。
如果这只是为了使开发和测试更容易(不必经常切换用户),这可以通过使用多个浏览器来实现。例如,您可以同时使用 Firefox 中的管理员帐户和 Chrome 中的标准用户帐户登录。
如果您仍然需要为一个浏览器执行此操作,我能想到的最明显的方法是实现两个独立的网站 - 一个用于您的管理页面,一个用于您的网站。这是您可以为您的管理页面实现单独站点的一种方法:
- 创建文件 myproject/admin_settings.py
from myproject.settings import *
# make sure any cookies will be named differently
CSRF_COOKIE_NAME = 'myproject_admin_csrftoken'
SESSION_COOKIE_NAME = 'myproject_admin_sessionid'
# point to a different urls.py file
ROOT_URLCONF = 'myproject.admin_urls'
- 创建文件 myproject/admin_urls.py
from django.contrib import admin
from django.urls import path
urlpatterns = [
path('admin/', admin.site.urls),
]
- 从您的其他 urls.py 文件中删除对管理部分的所有引用。
现在您应该可以只运行管理站点了:
python manage.py runserver --settings=myproject.admin_settings
如果您想使用 Django 开发服务器运行这两个站点,请打开两个终端并确保在两个不同的端口上运行
1 号航站楼:
python manage.py runserver 127.0.0.1:8000
2号航站楼:
python manage.py runserver 127.0.0.1:8001 --settings=myproject.admin_settings