django5.1 admin后台管理

django admin后台管理

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

  1. 注册自定义模型类:
      若要自己定义的模型类也能在admin后台管理界面中显示和管理,就需要将自己的类注册到后台管理界面中。
      注册步骤:

    1. 在应用app中的admin.py中导入注册要管理的模型models类,例如from .models import Book

    2. 调用admin.site.register(自定义模型类)方法进行注册。

    3. 举例:

      from django.contrib import admin
      from .models import Book,Author
      # Register your models here.
      # 先注册
      class BookManager(admin.ModelAdmin):
          #列表页显示哪些字段的列
          list_display = ['id','title','price','market_price']
          #超链接,控制list_display中的字段,哪些可以链接到修改页
          list_display_links = ['title']
          #过滤器
          list_filter = ['pub']
          #添加搜索框(模糊查询),根据输入的字在这个字段进行模糊查询
          search_fields = ['title']
          #添加可在列表页编辑的字段(该字段一定要是显示出来的字段,并且不是list_display_links的参数中的字段)
          list_editable = ['price','market_price']
      
      class AuthorManager(admin.ModelAdmin):
          list_display = ['id','name','age']
      
      # 再绑定,这里相当于即注册了模型类,又绑定了注册模型管理器和模型类
      admin.site.register(Book,BookManager)
      admin.site.register(Author,AuthorManager)
      
    4. 在用户自定义的模型类中可以重写def str(self):方法来调整模板类中数据实例的显示方式。

  2. 模型管理器类:可以自己修改admin的样式,为后台管理界面添加便于操作的新功能。

    1. 说明:后台管理器类必须继承自django.contrib.admin里的ModelAdmin类。
    2. 使用方法:
      1. 在应用app的admin.py中定义模型管理器类 class xxxxManager(admin.ModelAdmin):…

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

        from django.contrib import admin
        from .models import *
        admin.site.register(YYYY,XXXXManager) #绑定YYYY模型类与管理器类XXXXManager
        
        from django.contrib import admin
        from .models import Book,Author
        # Register your models here.
        # 先注册
        class BookManager(admin.ModelAdmin):
            #列表页显示哪些字段的列
            list_display = ['id','title','price','market_price']
            #超链接,控制list_display中的字段,哪些可以链接到修改页
            list_display_links = ['title']
            #过滤器
            list_filter = ['pub']
            #添加搜索框(模糊查询),根据输入的字在这个字段进行模糊查询
            search_fields = ['title']
            #添加可在列表页编辑的字段(该字段一定要是显示出来的字段,并且不是list_display_links的参数中的字段)
            list_editable = ['price','market_price']
        
        class AuthorManager(admin.ModelAdmin):
            list_display = ['id','name','age']
        
        # 再绑定,这里相当于即注册了模型类,又绑定了注册模型管理器和模型类
        admin.site.register(Book,BookManager)
        admin.site.register(Author,AuthorManager)
        
        
  3. 再谈Meta类:
      之前通过这个内部类修改过表的表名,针对模型类,它还有其他的控制,而且是体现在admin后台上的。通过Meta内嵌类定义模型类的属性,例如:

    class Meta:
                db_table = '数据表名'  #该模型所用的数据表的名称,注意修改完之后应立马更新同步数据库,Python manage.py makemigrations和migrate
                verbose_name = '单数名' #给模型类的一个易于理解的名称(单数),用于显示在/admin管理界面中(就是控制模型类在admin后台的显示名称)
                verbose_name_plural = '复数名' #该对象复数形式的名称(复数),用于显示在/admin管理界面中
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值