Django – Admin管理模块的使用
Djang自身集成了管理后台,在管理后台中可以对我们自定义model进行CRUD操作,也能进行列表展示解析,分页等等。
准备
先创建一个项目test_p,在项目中创建应用testapp,将项目配置这些配置好。
创建一个model
在应用文件目录下的models.py
中创建Student
、Grade
两个Model。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| from django.db import models
class Grade(models.Model): name = models.CharField(max_length=10, null=False)
create_time = models.DateTimeField(auto_now_add=True) update_time = models.DateTimeField(auto_now_add=True, auto_now=True)
class Student(models.Model): name = models.CharField(max_length=20, null=False) gender = models.BooleanField(default=True) age = models.IntegerField() create_time = models.DateTimeField(auto_now_add=True) update_time = models.DateTimeField(auto_now_add=True, auto_now=True)
grade = models.ForeignKey(Grade)
|
admin管理后台的url
在项目文件目录下可以看到路由配置文件urls.py
中有一个admin的url地址
1 2 3 4 5 6
| from django.conf.urls import url from django.contrib import admin
urlpatterns = [ url(r'^admin/', admin.site.urls), ]
|
创建admin后台的用户密码
在创建用户之前,先要在终端中使用命令迁移数据库。点击IDE最下方的Terminal,进入终端,先检查虚拟环境是否正确,若不正确,先配置虚拟环境。
在终端中输入命令:
python manage.py makemigrations
生成迁移文件
python manage.py migrate
执行迁移文件
数据库迁移成功后,开始创建用户,命令如下:
python manage.py createsuperuser
创建超级用户
接着要填写用户名、邮箱、密码、确认密码。如图:
Admin——创建用户
创建用户名成功之后,在浏览器中输入 127.0.0.1:8000/admin/
或 localhost:8000/admin/
进行登录。
在管理后台中管理模型对象
需要在应用文件目录下的admin.py
文件中注册要进行管理的Model。
1 2 3 4
|
admin.site.register(Grade) admin.site.register(Student)
|
当然也可以继承admin.ModelAdmin,编写自己的admin,来自定义Model的后台管理展示界面。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| class StudentAdmin(admin.ModelAdmin): def set_gender(self): if self.gender: return '男' else: return '女'
set_gender.short_description = '性别' list_display = ['id', 'name', set_gender] list_filter = ['gender'] search_fields = ['name'] list_per_page = 10 admin.site.register(Student, StudentAdmin)
|
说明:
short_description
:表示此字段在界面显示的名称
list_display
:表示需要显示的字段
list_filter
:表示可以进行过滤的字段
search_fields
:表示可以进行搜索的字段
list_per_page
:表示分页的条数
ordering
:表示排序的字段
界面显示如下:
Admin——Model管理界面
此外,还可以使用装饰器来实现自定义Model的后台管理展示界面。
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| @admin.register(Student) class StudentAdmin(admin.ModelAdmin): def set_gender(self): if self.gender: return '男' else: return '女'
set_gender.short_description = '性别' list_display = ['id', 'name', set_gender] list_filter = ['gender'] search_fields = ['name'] list_per_page = 10
|
最后更新时间: