zoukankan      html  css  js  c++  java
  • 【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    
  • 相关阅读:
    [时间篇TIME]Learn with whole Life 一生的学习
    使用IIS内置压缩功能,增加网站访问速度
    CSS中A链接样式的 "爱恨"原则
    爱情六十三课,定个开放日
    给爱子的信
    在IE中使用高级CSS3选择器
    爱情六十七课,下台阶的学问
    网上常用免费WebServices集合
    美国狗证上的10句话
    爱情六十五课,情爱无智者
  • 原文地址:https://www.cnblogs.com/wanghong1994/p/11601977.html
Copyright © 2011-2022 走看看