1、什么是admin后台管理

  • Django提供了比较完善的后台管理数据库的接口,可供开发过程中调用和测试使用
  • Django会搜集所有已注册模型类,为这些模型类提供数据管理界面,供开发者使用

image.pngimage.png

2、admin配置步骤

2.1、创建后台管理账号

创建后台管理账号-该账号为管理后台最高权限账号

  1. python manage.py createsuperuser # 创建admin后台管理用户

image.png

3、登录后台管理页面

浏览器访问http://127.0.0.1:8000/admin/
image.png
image.png

4、注册自定义模型类

若要自己定义的模型类也能在 /admin 后台管理界面中显示和管理,需要将自己的类注册到后台管理界面

注册步骤:

  1. 在应用app中的 admin.py 文件中导入注册要管理的 模型models类
  2. 调用admin.site.register 方法进行注册

    示例:

    ```python from django.contrib import admin from . import models # 导入注册 要管理的 models模型 (或者直接导入 里面的 类)

admin.site.register(models.Category) # 调用方法 注册这个模型类

  1. <a name="BxJnS"></a>
  2. # 5、模型管理器类
  3. **作用:**<br />为后台管理界面添加便于操作的新功能<br />**说明:**<br />后台管理器类须继承来自 django.contrib.admin 里的 ModelAdmin 类
  4. <a name="xMkBp"></a>
  5. ## 5.1、使用方法
  6. 1.在 应用app / admin.py 文件里定义模型管理器类
  7. ```python
  8. from django.contrib import admin
  9. class XxxManager(admin.ModelAdmin):
  10. ......

2.绑定模型类和注册模型管理器

  1. import hashlib
  2. from django.contrib import admin
  3. # Register your models here.
  4. from . import models
  5. # 定义模型管理器类
  6. class XxxManager(admin.ModelAdmin):
  7. ......
  8. # 绑定 模型类 和 注册模型管理器
  9. admin.site.register(models.Article,XxxManager) # 修改后

5.2、模型管理器使用案例

  1. import hashlib
  2. from django.contrib import admin
  3. from . import models
  4. # 新增代码########################################################
  5. # 定义模型管理器类
  6. class ArticleAdmin(admin.ModelAdmin):
  7. list_display = ['id', 'title', 'category', 'update_time', 'create_time']
  8. # 列表显示哪些字段
  9. search_fields = ['title']
  10. # 添加搜索框:指定搜索的时候按照哪些字段进行搜索【支持模糊查询】
  11. list_filter = ["category"]
  12. # 添加过滤器:根据哪些字段搜索\
  13. def md5(s):
  14. s = str(s)
  15. m = hashlib.md5(s.encode())
  16. return m.hexdigest()
  17. def reset_password(modeladmin,request,query_set):
  18. for query in query_set:
  19. query.password = md5(12345)
  20. query.save()
  21. reset_password.short_description="重置密码"
  22. # 定义模型管理器类
  23. class UserAdmin(admin.ModelAdmin):
  24. actions = [reset_password]
  25. # 添加动作:重置密码
  26. ########################################################
  27. admin.site.register(models.Category) # 调用方法 注册这个模型类
  28. admin.site.register(models.Article,ArticleAdmin) # 绑定模型类和注册模型管理器
  29. admin.site.register(models.User,UserAdmin) # 绑定模型类和注册模型管理器

image.png
image.png

模型管理器类的常用属性

  1. list_display 去控制哪些字段会显示在 admin 的修改列表页面中
  2. list_display_links 可以控制 list_display 中的字段是否应该链接到对象的“更改”页面
  3. list_filter 设置激活 admin 修改列表页面右侧栏中的过滤器
  4. search_fields 设置启用 admin 更改列表页面上的搜索框
  5. list_editable 设置为模型上的字段名称列表,这将允许在更改列表页面上进行编辑