django admin 增加伪列相乘,并修改verbose_name
时间: 2024-02-19 10:59:24 浏览: 111
要在 Django admin 中增加伪列相乘,并修改 verbose_name,你可以按照以下步骤进行操作:
首先,在你的模型中定义一个计算伪列相乘的方法,例如:
```
class Product(models.Model):
name = models.CharField(max_length=100, verbose_name='商品名称')
price = models.DecimalField(max_digits=10, decimal_places=2, verbose_name='商品单价')
quantity = models.IntegerField(verbose_name='商品数量')
def total_cost(self):
return self.price * self.quantity
total_cost.short_description = '总价'
```
在上述代码中,我们在每个字段后面增加了 verbose_name,来指定字段在 admin 中的显示名称。同时,在 total_cost 方法中也增加了 short_description 属性,来指定在 admin 中显示的列名称。
然后,在你的 ModelAdmin 类中,将该方法添加到 list_display 属性中。例如:
```
class ProductAdmin(admin.ModelAdmin):
list_display = ('name', 'price', 'quantity', 'total_cost')
def total_cost(self, obj):
return obj.total_cost()
total_cost.admin_order_field = 'total_cost'
total_cost.short_description = '总价'
# 修改 verbose_name
verbose_name = '商品信息'
verbose_name_plural = verbose_name
admin.site.register(Product, ProductAdmin)
```
在上述代码中,我们在 ModelAdmin 类中增加了 verbose_name 和 verbose_name_plural 属性,来修改在 admin 中显示的模型名称。另外,我们也将 total_cost 方法的 short_description 属性修改为了 '总价'。
这样,你就可以在 Django admin 中显示伪列相乘的结果,并修改 verbose_name 了。
阅读全文