admin的基本使用

一、注册现有的model

  • 1、在app下面的admin.py文件中(创建app的时候会默认创建)
  • 2、注册model

    from django.contrib import admin
    
    # Register your models here.
    
    from .models import *
    
    admin.site.register(UserModel)
    
    admin.site.register(UserTokenModel)
    
    admin.site.register(UserGroupModel)
    
  • 3、页面显示效果

    图片

  • 4、修改显示表名(需要在model中添加meta消息)

    class GoodsModel(models.Model):
        """
        创建一个产品表
        """
        name = models.CharField(max_length=100, null=False, verbose_name='产品名称')
        price = models.FloatField(verbose_name='产品价格')
        create_at = models.DateTimeField(auto_now_add=True, null=True)
    
        class Meta(object):
            verbose_name = '产品表'
            verbose_name_plural = verbose_name
    
  • 5、修改上面的app01的名字(在app下面的__init__.py文件中添加内容)

    from os import path
    from django.apps import AppConfig
    
    VERBOSE_APP_NAME = "第一个app" # 你要修改的名字
    
    def get_current_app_name(file):
        return path.dirname(file).replace('\\', '/').split('/')[-1]
    
    class AppVerboseNameConfig(AppConfig):
        name = get_current_app_name(__file__)
        verbose_name = VERBOSE_APP_NAME
    
    default_app_config = get_current_app_name(__file__) + '.__init__.AppVerboseNameConfig'
    
  • 6、效果图

    修改后样式

  • 7、也可以使用下面方式修改App显示的名字

    • 1.在apps.py中配置

      from django.apps import AppConfig
      
      class UsersConfig(AppConfig):
          name = 'users'
          verbose_name = '用户'
      
    • 2.在App__init__.py文件中

                           # 组件名.apps.apps.py中的类名
      default_app_config = "users.apps.UsersConfig"
      
  • 8、或者使用下面的方式来显示app的名称

    • 1.在app里面的apps.py文件中加上verbose_name

      from django.apps import AppConfig
      
      class UsersConfig(AppConfig):
          name = 'apps.users'
          verbose_name = '用户'
      
    • 2.在注册app的时候采用下面的方式注册

      ...
      users.apps.UsersConfig
      ...
      

二、显示最基本的字段

  • 1、在model中设置(产品的model中添加)

    ...
    def __str__(self):
        return self.name
    ...
    

三、admin的基本配置

  • 1、使用list_display显示字段

    class GoogModelConfig(admin.ModelAdmin):
        list_display = ['name', 'price', 'create_at']
    
    admin.site.register(GoodsModel, GoogModelConfig)
    # 也可以使用装饰器的方式
    @admin.register(GoodsModel)
    class GoogModelConfig(admin.ModelAdmin):
        list_display = ['name', 'price', 'create_at']
    
  • 2、使用list_display_links配置列表点击可以点击到编辑页面

    @admin.register(GoodsModel)
    class GoogModelConfig(admin.ModelAdmin):
        list_display = ['name', 'price', 'create_at']
        list_display_links = ['name', 'price']
    
  • 3、自定义函数显示列

    from django.utils.safestring import mark_safe
    
    @admin.register(GoodsModel)
    class GoogModelConfig(admin.ModelAdmin):
        def deletes(self):
            return mark_safe("<a href=''>删除</a>")
    
        list_display = ['name', 'price', 'create_at', deletes]
        list_display_links = ['name', 'price']
    
  • 4、list_filter,列表时,定制右侧快速筛选

  • 5、list_editable,列表时,设置可以编辑
  • 6、search_fields新增搜索框
  • 7、date_hierarchy可以配置一个时间过滤的

    ...
    date_hierarchy = 'create_at'
    ...
    
  • 8、关于更多字段的显示请参考

results matching ""

    No results matching ""