如何配置Django管理员设置

182 阅读4分钟

我们在使用Django建立我们的小型狗狗网站方面取得了很大的进展。我们已经学会了如何设置Django,并创建了一些基本的网页来显示我们系统中狗狗的信息。目前,与我们网站的数据互动的唯一方式是通过网站前端的网络浏览器。Django有一个预先为你建立的管理后台。为了利用它,你确实需要设置一些东西。在本教程中,我们将看到如何配置管理后台,以及如何设置一个超级用户,以便我们也能在管理面板中查看狗。


创建一个Django超级用户

即使你弄清楚了如何打开Django的管理面板,在你设置一个超级用户之前,你也无法使用它。文档中对如何做到这一点说得很清楚,所以我们现在就来试一下。在终端,如果内置服务器已经在运行,你首先需要停止它。一旦完成,我们将输入以下命令。

djangotutorial $python manage.py createsuperuser
Username (leave blank to use 'myusername'): admin
Email address: admin@example.com
Password:
Password (again):
Error: Blank passwords aren't allowed.
Password:
Password (again):
Superuser created successfully.

现在我们已经创建了一个超级用户来使用管理面板。注意,为了演示,我们尝试使用一个空白的密码,只是为了表明你需要实际提供一个有效的密码,以便命令能够工作。


配置urls.py

现在我们需要设置路由,以允许我们在网页浏览器中输入一个特定的URL,并查看管理界面的登录表单。下面是允许发生这种情况的代码。忽略调试栏的代码,这是一个不同的主题,我们可能会在未来的教程中介绍。

djangotutorial/urls.py

from django.contrib import admin
from django.urls import include, path
from djangodogs import views
import debug_toolbar

urlpatterns = [
    path('__debug__/', include(debug_toolbar.urls)),
    path('admin/', admin.site.urls),
    path('', views.home, name='home'),
    path('dogs/<id>/', views.dog_detail, name='dog_detail'),
]

在urls.py文件的顶部是导入语句,它使这个python文件中的代码可以使用管理模块。第8行是一个新的管理员路由条目。这个路由说的是,当你访[问http://localhost:8000/admin,你应该看到一个管理面板的登录表单。

django admin login page

很贴心这就是Python和Django的力量。一个简单的导入语句就可以让你获得大量的功能。现在让我们继续前进,登录并看看周围。一旦我们登录,我们就可以看到一些基本的可用选项。我们看到一个 "欢迎你,管理员 "的欢迎词,一个到我们主网站的链接,一个更改密码的链接,以及一个注销的选项。

django administration groups users

通过点击 "用户 "链接,我们能够深入了解并看到系统中的用户。目前,只有一个存在,那就是我们通过上面的shell命令创建的超级用户。

django admin super user


为管理员面板注册一个应用程序

现在,我们还没有看到任何关于我们在[Django初学者]教程中建立的djangodogs应用程序的信息。这是因为你需要注册任何你希望能够在管理后台管理的应用程序。当你使用python manage.py startapp命令在Django中创建一个新的应用程序时,创建的文件之一是admin.py。在这个文件中,我们需要注册我们的Dog模型,这样我们就可以与该Django模型进行交互。

djangodogs/admin.py

from django.contrib import admin

from .models import Dog

admin.site.register(Dog)

有了这段代码,我们现在就可以看到并与我们的Dog模型进行互动了。

Django administration register app

查看应用程序模型

回顾一下,到目前为止,我们的数据库里有3只狗。如果我们点击管理面板中的Dogs链接,当然,我们可以看到三只狗的对象。我们有完整的CRUD(创建、读取、更新、删除)能力,可以使用该模型。

django view model in admin panel

编辑一个模型

通过点击数据库中的一条记录,我们会看到一个预先填充的表格,在那里我们可以随意编辑模型。

django update a model

添加一个模型

让我们使用管理面板将另一只狗添加到我们的系统中!

django add new entry to database admin panel
django add new entry to database success

现在,当我们访问网站的前端时,我们可以看到Max现在确实是我们的狗狗列表的一部分。

new dog added to system

通过管理面板删除一条记录

Django的管理面板让我们可以很容易地从数据库中删除一条记录,如果你选择的话。我们并不打算从数据库中删除狗,因为任何狗都不应该被删除,但这个截图显示了你如何删除!

django admin delete database record

Django管理员设置总结

正如我们在本教程中看到的,为我们的项目添加一个管理界面是很容易的,这样管理用户就可以看到和编辑数据。为了做到这一点,我们必须使用 manage.py 创建一个超级用户。一旦完成,我们为项目配置urls.py,为任何我们希望显示在管理界面的应用程序配置admin.py