有没有一种在Django管理站点中显示模型方法或属性的自然方法?在我的情况下,我有作为模型一部分的角色的基本统计数据,但其他事情,如状态效应,影响该统计数据的总计算:
class Character(models.Model):
base_dexterity = models.IntegerField(default=0)
@property
def dexterity(stat_name):
total = self.base_dexterity
total += sum(s.dexterity for s in self.status.all()])
return total
如果我可以在字段旁边显示总计算统计数据以更改更改字符管理页面中的基本统计数据,那将是很好的,但我不清楚如何将该信息合并到页面中。
答案 0 :(得分:5)
来自docs的好例子:
class Person(models.Model):
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
color_code = models.CharField(max_length=6)
def colored_name(self):
return '<span style="color: #%s;">%s %s</span>' % (self.color_code, self.first_name, self.last_name)
colored_name.allow_tags = True
class PersonAdmin(admin.ModelAdmin):
list_display = ('first_name', 'last_name', 'colored_name')
适用于列表页面,如果您想在编辑页面上使用自定义数据,则需要override template。