【Django入坑之路】admin组件

1:settings.py 中的 INSTALLED_APPS

 1 # Application definition
 2 
 3 INSTALLED_APPS = [
 4     'django.contrib.admin',   #admin其实就是一个应用包,使用的时候需要写在APPS里
 5     'django.contrib.auth',
 6     'django.contrib.contenttypes',
 7     'django.contrib.sessions',
 8     'django.contrib.messages',
 9     'django.contrib.staticfiles',
10     "app01"                         #开发者所创建的应用包
11 ]    
View Code

2:admin管理工具的简单使用

启动开发服务器,然后在浏览器中访问 http://127.0.0.1:8000/admin/,得到登陆界面,你可以通过命令 python manage.py createsuperuser 来创建超级用户。

为了让 admin 界面管理某个数据模型,我们需要先注册该数据模型到 admin

admin.site.register(models.UserInfo) #models.字段  注册字段在admin对应表显示

3:admin管理工具的扩展使用

方式一:
    class UserAdmin(admin.ModelAdmin):
        list_display = ('user', 'pwd',)
 
    admin.site.register(models.UserInfo, UserAdmin) # 第一个参数可以是列表
     
 
方式二:
    @admin.register(models.UserInfo)                # 第一个参数可以是列表
    class UserAdmin(admin.ModelAdmin):
        list_display = ('user', 'pwd',)

ModelAdmin中提供了大量的可定制功能:

 1. list_display:定制显示字段

class UserAdmin(admin.ModelAdmin):  #创建一个类,继承admin.ModelAdmin
    list_display = ('user', 'pwd', 'xxxxx')   #定义显示字段 
 
    def xxxxx(self, obj):
        return "xxxxx"

admin.site.register(models.UserInfo, UserAdmin) #一定要在对应的表里实例化,否则不会生效

2. list_display_links:定制列点击跳转

class UserAdmin(admin.ModelAdmin):
    list_display_links = ('pwd',)     #定制列可以点击跳转

3. list_filter,列表时,定制右侧快速筛选。

class UserAdmin(admin.ModelAdmin):
     list_filter =["字段1",字段2]

4:list_editable,列表时,可以编辑的列 

class UserAdmin(admin.ModelAdmin):   
    list_editable = (“字段1”,"字段2") #在表首页直接进行编辑保存

5:search_fields,列表时,模糊搜索的功能

class UserAdmin(admin.ModelAdmin):
     
    search_fields = ('user', 'pwd')    #在表首页出现搜索框,可以搜索定义字段的关键字

6:ordering,列表时,数据排序规则

class UserAdmin(admin.ModelAdmin):
    ordering = ('-id',)
    或
    def get_ordering(self, request):
        return ['-id', ]

7:action,列表时,定制action中的操作

class UserAdmin(admin.ModelAdmin):
 
    # 定制Action行为具体方法
    def func(self, request, queryset):
        print(self, request, queryset)
        print(request.POST.getlist('_selected_action'))
        #这里可以对与拿到对象的操作 如:request.update(data='2019.9.28')
 
    func.short_description = "中文显示自定义Actions"
    actions = [func, ]
 
    # Action选项都是在页面上方显示
    actions_on_top = True
    # Action选项都是在页面下方显示
    actions_on_bottom = False
 
    # 是否显示选择个数
    actions_selection_counter = True    
原文地址:https://www.cnblogs.com/wanghong1994/p/11601977.html