1、什么是admin后台管理
- Django提供了比较完善的后台管理数据库的接口,可供开发过程中调用和测试使用
- Django会搜集所有已注册的模型类,为这些模型类提供数据管理界面,供开发者使用
2、admin配置步骤
2.1、创建后台管理账号
创建后台管理账号-该账号为管理后台最高权限账号
python manage.py createsuperuser # 创建admin后台管理用户
3、登录后台管理页面
浏览器访问http://127.0.0.1:8000/admin/
4、注册自定义模型类
若要自己定义的模型类也能在 /admin 后台管理界面中显示和管理,需要将自己的类注册到后台管理界面
注册步骤:
- 在应用app中的 admin.py 文件中导入注册要管理的 模型models类
- 调用admin.site.register 方法进行注册
示例:
```python from django.contrib import admin from . import models # 导入注册 要管理的 models模型 (或者直接导入 里面的 类)
admin.site.register(models.Category) # 调用方法 注册这个模型类
<a name="BxJnS"></a>
# 5、模型管理器类
**作用:**<br />为后台管理界面添加便于操作的新功能<br />**说明:**<br />后台管理器类须继承来自 django.contrib.admin 里的 ModelAdmin 类
<a name="xMkBp"></a>
## 5.1、使用方法
1.在 应用app / admin.py 文件里定义模型管理器类
```python
from django.contrib import admin
class XxxManager(admin.ModelAdmin):
......
2.绑定模型类和注册模型管理器
import hashlib
from django.contrib import admin
# Register your models here.
from . import models
# 定义模型管理器类
class XxxManager(admin.ModelAdmin):
......
# 绑定 模型类 和 注册模型管理器
admin.site.register(models.Article,XxxManager) # 修改后
5.2、模型管理器使用案例
import hashlib
from django.contrib import admin
from . import models
# 新增代码########################################################
# 定义模型管理器类
class ArticleAdmin(admin.ModelAdmin):
list_display = ['id', 'title', 'category', 'update_time', 'create_time']
# 列表显示哪些字段
search_fields = ['title']
# 添加搜索框:指定搜索的时候按照哪些字段进行搜索【支持模糊查询】
list_filter = ["category"]
# 添加过滤器:根据哪些字段搜索\
def md5(s):
s = str(s)
m = hashlib.md5(s.encode())
return m.hexdigest()
def reset_password(modeladmin,request,query_set):
for query in query_set:
query.password = md5(12345)
query.save()
reset_password.short_description="重置密码"
# 定义模型管理器类
class UserAdmin(admin.ModelAdmin):
actions = [reset_password]
# 添加动作:重置密码
########################################################
admin.site.register(models.Category) # 调用方法 注册这个模型类
admin.site.register(models.Article,ArticleAdmin) # 绑定模型类和注册模型管理器
admin.site.register(models.User,UserAdmin) # 绑定模型类和注册模型管理器
模型管理器类的常用属性
- list_display 去控制哪些字段会显示在 admin 的修改列表页面中
- list_display_links 可以控制 list_display 中的字段是否应该链接到对象的“更改”页面
- list_filter 设置激活 admin 修改列表页面右侧栏中的过滤器
- search_fields 设置启用 admin 更改列表页面上的搜索框
- list_editable 设置为模型上的字段名称列表,这将允许在更改列表页面上进行编辑