12、Django Admin在列表视图页面上显示计算字段

两种方法:

注册模型有两种方式,需要首先添加或者修改admin中的注册模型如下方式

@admin.register(Origin)
class OriginAdmin(admin.ModelAdmin):
    list_display = ("name",)

1、在models的模型类中添加函数

def hero_count(self,):
    return self.hero_set.count()
def villain_count(self):
    return self.villain_set.count()

2、在admin的管理模型上,修改或者添加管理模型如下所示(两个方法函数):

@admin.register(Origin)  
class OriginAdmin(admin.ModelAdmin):  

    def hero_count(self, obj):  
        return obj.hero_set.count()  
      
    def villain_count(self, obj):  
        return obj.villain_set.count()  

    # 以下两句可选择添加
    hero_count.short_description = 'Heroes'  # 设置列标题  
    villain_count.short_description = 'Villains'  # 设置列标题
  
    list_display = ("name", "hero_count", "villain_count")

两种方式显示效果:

相关推荐
鸡鸭扣1 小时前
Docker:3、在VSCode上安装并运行python程序或JavaScript程序
运维·vscode·python·docker·容器·js
库库林_沙琪马1 小时前
Redis 持久化:从零到掌握
数据库·redis·缓存
paterWang2 小时前
基于 Python 和 OpenCV 的酒店客房入侵检测系统设计与实现
开发语言·python·opencv
东方佑2 小时前
使用Python和OpenCV实现图像像素压缩与解压
开发语言·python·opencv
神秘_博士3 小时前
自制AirTag,支持安卓/鸿蒙/PC/Home Assistant,无需拥有iPhone
arm开发·python·物联网·flutter·docker·gitee
牵牛老人3 小时前
Qt中使用QPdfWriter类结合QPainter类绘制并输出PDF文件
数据库·qt·pdf
Moutai码农4 小时前
机器学习-生命周期
人工智能·python·机器学习·数据挖掘
卡西里弗斯奥4 小时前
【达梦数据库】dblink连接[SqlServer/Mysql]报错处理
数据库·mysql·sqlserver·达梦
m0_748255414 小时前
vscode配置django环境并创建django项目(全图文操作)
vscode·django·sqlite
小白教程5 小时前
python学习笔记,python处理 Excel、Word、PPT 以及邮件自动化办公
python·python学习·python安装