当前位置: 首页 > 办公技巧 > 正文

exclude办公技巧(第32章 Django的ModelAdmin)

  • 叁碗诸角 叁碗诸角
  • 办公技巧
  • 2023-08-12 16:29:47
  • 0

在admin.py下,有个叫ModelAdmin的家伙是专门为Model进行量身打造的武器。在base/admin.py里添加PostAdmin。

from django.contrib import adminfrom .models import Post  @admin.register(Post)class PostAdmin(admin.ModelAdmin):    # 信息列表里显示的内容    list_display = ('name', 'createDate', 'color_state')    # 添加或修改里显示的内容项    fields = ('name',)

注册Model到ModelAdmin中的方法有两种,一种是通过装饰器@admin.register(

Model名称),还有一种是用admin.site.register(Model, ModelAdmin)。

在department/admin.py里添加DepartmentAdmin,相关属性的作用都在代码注释里作了说明,走过路过,千万不要错过。

from django.contrib import adminfrom .models import Department # 全局设置空值为'--'# admin.AdminSite.empty_value_display = '--'  @admin.register(Department)class DepartmentAdmin(admin.ModelAdmin):    # 信息列表里显示的内容,默认第1个加链接list_display = ('name', 'leader', 'phone', 'region', 'address', 'createDate', 'show_opt')    # 值为空时,设置为指定值    empty_value_display = '--'    # 设置需要添加标签的字段    list_display_links = ('name', 'show_opt',)    # 每页显示的数据数量,默认是100    list_per_page = 5    # 指定排序字段,加"-"降序,否则升序    ordering = ('-createDate',)    # 是否在【执行】按钮右边显示选择对象的说明,默认为True    actions_selection_counter = True    # -------添加或修改里不显示exclude指的项-------    exclude = ['createDate']# 与 exclude相对,内部()选定的字段在同一行显示# 默认情况下,系统会为你的模型动态的创建ModelForm,可定义# form = DepartmentModelForm    # fields = ('name', ('leader', 'phone'), 'region')    # 将字段进行分块布局    fieldsets = (        (None, {            'fields': ('name', 'leader', 'phone', 'region')        }),        ('办公地址', {            'classes': ('collapse',),            'description': '还未确定办公地址时可以不填写',            'fields': ('address', 'longitude', 'latitude')        }),    )    # 单选按钮字段 radio_fields = {}    # 设置只读字段 readonly_fields = ()     # 自定义字段    def show_opt(self, obj):        print('默认字段内容:', obj)        return None        # return '编辑'     # 自定义字段说明    show_opt.short_description = '操作'    # 返回空值时,用"编辑"替换    show_opt.empty_value_display = '编辑'

单表介绍完,多表关系还会远么?



最新文章