Admin
大部份网站都设计有管理后台,让管理者方便新增或异动网站内容。
而这样的管理后台,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 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论