第一步:在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')