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'

原文地址:https://www.cnblogs.com/longyunfeigu/p/9541056.html