zoukankan      html  css  js  c++  java
  • Django 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',)
    

    list_display

    必须是列表或者其他可迭代对象

    @admin.register(Book)
    class BookAdmin(admin.ModelAdmin):
        def xxx(self, obj):
            return 'xxx'
        # 这里的 xxx 必须是字符串
        list_display = ['nid','title', 'publish', 'xxx']
    

    list_display_links

    通常是列表,定制列可以点击跳转

    @admin.register(Book)
    class BookAdmin(admin.ModelAdmin):
        def xxx(self, obj):
            return 'xxx'
    
        list_display = ['nid','title', 'publish', 'xxx']
        # list_display_links 的值必须在 list_display里面
        list_display_links = ['title']
    

    list_filter

    通常是列表,定制右侧快速筛选

    分页相关

    # 分页,每页显示条数
        list_per_page = 100
     
    # 分页,显示全部(真实数据<该值时,才会有显示全部)
        list_max_show_all = 200
     
    # 分页插件
        paginator = Paginator
    

    list_editable

    通常是列表,可以编辑的列,不能是多对多的字段

    search_fields

    通常是列表,模糊搜索的功能

    date_hierarchy

    字符串字段,对Date和DateTime类型进行搜索

    action

    通常是列表,定制action中的操作

    @admin.register(models.UserInfo)
    class UserAdmin(admin.ModelAdmin):
        # 定制Action行为具体方法
        def func(self, request, queryset):
            print(self, request, queryset)
    
        func.short_description = "中文显示自定义Actions"
        actions = [func, ]
    
        # Action 选项栏都是在页面上方显示
        actions_on_top = True
        # Action 选项栏都是在页面下方显示
        actions_on_bottom = False
    
        # 是否显示选择个数, True 表示选择的时候 类似 1 of 1 selected
        actions_selection_counter = True
    

    定制HTML模板

    add_form_template = None
    change_form_template = None
    change_list_template = None
    delete_confirmation_template = None
    delete_selected_confirmation_template = None
    object_history_template = None
    

    raw_id_fields

    通常是列表,详细页面,针对FK和M2M字段变成以Input框形式

    fields

    详细页面时,显示字段的字段

    @admin.register(models.UserInfo)
    class UserAdmin(admin.ModelAdmin):
        fields = ('user',)
    

    exclude

    详细页面时,排除的字段

    @admin.register(models.UserInfo)
    class UserAdmin(admin.ModelAdmin):
        exclude = ('user',)
    

    readonly_fields

    详细页面时,只读字段

    ordering

    通常是列表,数据排序规则

    empty_value_display

    列数据为空时,显示默认值

    @admin.register(Book)
    class BookAdmin(admin.ModelAdmin):
        empty_value_display = "列数据为空时,默认显示"
    
        list_display = ('title', 'publishDate', 'up')
    
        def up(self, obj):
            try:
                return obj.publish.name
            except Exception:
                return None
    
        up.empty_value_display = "指定列数据为空时,默认显示"
    

    site_header

    admin.site.site_header = 'xxx'

  • 相关阅读:
    JS 获取浏览器窗口大小方面的
    可以直接拿来用的15个jQuery代码片段
    JS 键盘方面的
    JAVA 实现DES MD5加密
    Spring SpringMvc Hibernate整合
    easyUI comboselector使用
    页面中嵌套html代码显示
    在IntelliJ上操作GitHub
    Maven项目配置第三方jar包
    JSP自定义标签
  • 原文地址:https://www.cnblogs.com/longyunfeigu/p/9541056.html
Copyright © 2011-2022 走看看