Django 自定义管理台

第一步:在admin中注册

在这一步里,对于那些想在admin界面进行管理的model需要在admin.py中进行注册,如果需要自定义的admin管理后台的话就要同时注册model和model_admin

class WorkSet(models.Model):
     name = models.CharField('work set name', max_length=255)

class WorkSetAdmin(admin.ModelAdmin):
    list_display = ('name', '')

这里需要注意,model要继承自models.Model, model admin要继承自 admin.ModelAdmin
对于model admin有两种注册方式

  • 直接在admin.py中进行注册
admin.site.register(WorkSet, WorkSetAdmin)
  • 使用装饰器
@admin.register(Blog)
class WorkSetAdmin(admin.ModelAdmin):
    list_display = ('name', '')

第二步:自定义model admin

通过设置 list_display 来直接需要显示的数据

list_display = ('name')

第三步:显示动态计算的数据

如果某些数据不是单纯的存储在model中,而是需要在显示的时候临时计算,那么在list_display中就不能直接填写model的字段名称了。这时可以通过如下操作处理

  • 在model中定义一个函数,这个函数可以动态获取需要显示的值
  • 在model admin中,在list_display 中将上面的函数名填写进去
def complete_work_item(self):
     ...

class WorkSetAdmin(admin.ModelAdmin):
    list_display = ('name', 'complete_work_item')

你可能感兴趣的:(Django 自定义管理台)