返回介绍

Admin

发布于 2025-02-27 00:22:13 字数 3621 浏览 0 评论 0 收藏 0

大部份网站都设计有管理后台,让管理者方便新增或异动网站内容。

而这样的管理后台,Django 也有内建一个 App -- Django Admin 。只需要稍微设定,网站就能拥有管理后台功能。

前一章,我们学到如何使用 Django Model 抽象地表达资料库结构。现在,我们要透过 Django Admin 看到实际的资料,并跟资料库进行互动。

完成本章后,你会瞭解如何设定 Django Admin,并使用 Django 管理后台,完成 Post 的新增、修改及删除。

设定管理后台

将 Django Admin 加入 INSTALLED_APPS

后台管理的功能 Django 已预设开启。因此,设定档中的 INSTALLED_APPS 裡,已经有 django.contrib.admin 这个 app :

# mysite/settings.py

INSTALLED_APPS = (
    'django.contrib.admin',
    ...
)

当你在同步资料库时,也会建立需要的资料表及栏位。

设定管理后台的 URL

为了让你可以从浏览器进入管理后台,我们需要设定对应的 urls 。

我们将管理后台的网址设定为 /admin/ 。确认 mysite/urls.py 中的 urlpatterns 包含下面这行:

url(r'^admin/', include(admin.site.urls)),

建立 superuser

要使用 Django 的管理后台,需要一个管理员帐号。

使用 createsuperuser 这个指令,建立一个 superuser:

(djangogirls_venv) ~/djangogirls/mysite$ python manage.py createsuperuser
Username (leave blank to use 'YOUR_NAME'):
Email address: your_name@yourmail.com
Password:
Password (again):
Superuser created successfully.

输入帐号、Email、密码等资讯,就完成 superuser 的新增了。

注册 Model class

最后,我们需要在让 Django 知道,有哪些 Model 需要管理后台。

修改 trips app 裡的 admin.py,并注册 Post 这个 Model:

# trips/admin.py

from django.contrib import admin
from .models import Post

admin.site.register(Post)

使用管理后台

进入管理后台

连至 http://127.0.0.1:8000/admin ,可以看到管理后台的登入页面:

请输入你刚创立的 superuser 帐号密码,进入管理后台:

第一个区块 Authentication and Authorization ,可以管理使用者(User)和 群组(Group);第二个 Trips 区块裡,则可以看到刚刚设定的 Post model。在这裡可以执行 Post 的新增、修改、删除等功能。

新增一个 Post

现在试著建立一个新的 Post 看看:

建立成功后会回到 Posts 页面,你会发现有一笔资料显示为 Post object

Django 通常以 Post object 来表示 Post 物件,但此种显示不易辨别。我们可以透过 def __str__ 更改 Post 的表示方式。

修改 trips/models.py

# trips/models.py

from django.db import models


class Post(models.Model):
    ...
    created_at = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.title

重新整理 Posts 页面后,Post 已经被定义成显示标题:

小结

你现在己经学会:

  • 设定 Django Admin
  • 建立 superuser
  • 注册 Model 至 Admin

本章新学到的指令

指令说明
python manage.py createsuperuser新增 Django 管理者帐号

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文