【django admin】外键关联中,如何选择一种属性后展示另外一种属性

复制代码
class Money(admin.ModelAdmin):

    list_display = ('user','get_idcad','chuqin','qingjia','chizao','yingde','shide','remark',)
    list_filter = ['user','chuqin','qingjia','chizao','yingde','shide',]

    # 外键关联中,如何选择一种属性后展示另外一种属性
    def get_idcad(self, obj):
        return obj.gongzi.idcad        # 这是我们要展示的字段
get_idcad.short_description = '工资卡号' get_idcad.admin_order_field = 'gongzi__idcad'
admin.site.register(models.Money, Money)




数据库设计: 定义外键关联

class GgongZiID(models.Model):

user = models.ForeignKey(to="UserInfo", verbose_name="所属员工", on_delete=models.CASCADE)
idcad = models.CharField(verbose_name="工资卡号",max_length=55)

def __str__(self):
return self.user.name

class Meta:
verbose_name = "工资卡列表"
verbose_name_plural = verbose_name
db_table = 'GgongZiID'




class Money(models.Model):

user = models.ForeignKey(to="UserInfo", verbose_name="员工姓名",on_delete=models.CASCADE)
gongzi = models.ForeignKey(to="GgongZiID", verbose_name="工资卡号",on_delete=models.CASCADE)
chuqin = models.IntegerField(verbose_name="出勤天数")
qingjia = models.IntegerField(verbose_name="请假天数")
chizao = models.IntegerField(verbose_name="迟到早退总数")
yingde = models.FloatField(verbose_name="应得工资")
shide = models.FloatField(verbose_name="实得工资")
remark = models.TextField(max_length=255,verbose_name="备注")

def __str__(self):
return self.user.name

class Meta:
verbose_name = "工资条"
verbose_name_plural = verbose_name
db_table = 'Money'
复制代码

目的:要通过选择工资员工的姓名,保存后展示选择工资姓名的工资卡号

 

 

 

 

posted @   PythonNew_Mr.Wang  Views(490)  Comments(1Edit  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示