Skip to content

Django - 管理界面

Django 为网站管理员和内容管理人员提供了一个功能强大、开箱即用的 Web 界面。这个“Admin 站点”(Admin site)是 Django 最受欢迎的功能之一,它根据你的项目模型(models)自动生成,允许受信任的用户管理内容。

Admin 界面依赖于几个 Django 内置的应用(apps)。要启用它,请确保这些应用已包含在项目 settings.py 文件中的 INSTALLED_APPS 列表里,并且所需的中间件(middleware)已包含在 MIDDLEWARE 列表里。

在 settings.py 中,确认 INSTALLED_APPS 包含:

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myapp', # 你的应用
# ... 其他应用
]

注意:INSTALLED_APPS 中应用的顺序有时会影响加载,但这些核心应用通常放在列表顶部。

同样在 settings.py 中,确保 MIDDLEWARE 包含:

MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
# ... 其他中间件
]

注意:MIDDLEWARE 设置取代了旧的 MIDDLEWARE_CLASSES。它是一个列表(list),而不是元组(tuple)。顺序至关重要;除非有特殊原因,否则请遵循此处所示的默认顺序。

在你访问 Admin 界面之前,你需要为 INSTALLED_APPS 中列出的应用创建必要的数据库表。这可以通过 migrate 命令完成:

$ python manage.py migrate

migrate 命令应用数据库迁移(database migrations),为你的应用(包括 auth 和 admin 等内置应用)中定义的模型(models)创建表。

要登录 Admin 站点,你需要一个拥有完全权限的超级用户账户(superuser account)。使用以下命令创建一个:

$ python manage.py createsuperuser

系统将提示你输入用户名、电子邮件地址和密码。

接下来,确保 Admin 站点的 URL 已配置在你的项目主 urls.py 文件中(例如,myproject/urls.py)。它应该看起来像这样:

from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
# ... 项目的其他 URL 模式(例如,include('myapp.urls'))
]

注意:我们使用的是 django.urls 中的 path 函数。旧的 url 函数和 patterns 已被废弃。admin.autodiscover() 不再需要。

现在,运行开发服务器:

$ python manage.py runserver

Admin 界面通常可通过以下地址访问: http://127.0.0.1:8000/admin/

你将看到一个登录页面,要求输入你使用 createsuperuser 创建的用户名和密码。

使用你的超级用户账户登录后,你将看到主 Admin 控制面板。它通常会列出按应用分组的可管理模型,例如“认证与授权”(Authentication and Authorization)下的用户(Users)和组(Groups),以及你自己在 Admin 中注册的任何模型。

此界面允许管理员对已注册的模型执行 CRUD(创建 Create、读取 Read、更新 Update、删除 Delete)操作,管理用户和权限,并查看站点活动日志。

要使你自己的应用模型出现在 Admin 中,你需要将它们注册到应用的 admin.py 文件中。更多详细信息,请参阅 Django 关于 Admin 站点的官方文档。

Django Admin 文档链接:https://docs.djangoproject.com/en/stable/ref/contrib/admin/