如何在 Django Admin 中计算外键字段然后显示在列表中

How to calculate foreign keys field in Django Admin then show in list

想用Django做一个公司管理系统

所以我选择了Django Admin作为基础

我希望计算结果显示在 Django Admin 列表中。

这是我的代码和错误信息:

models.py

class Product(models.Model):
    ID   = models.CharField(max_length=5, unique=True)
    NAME = models.CharField(max_length=30)
    STOCK= models.IntegerField(default=0)

class Order(models.Model):
    ID            = models.CharField(max_length=5, unique=True)
    Product       = models.ForeignKey(Product, on_delete=models.CASCADE)
    day_sale_30   = models.IntegerField(default=0)

admin.py

@admin.register(Product)
class Product(admin.ModelAdmin):
    pass

@admin.register(Order)
class list_Order(admin.ModelAdmin):
    list_display=("NO", "Product", "day_sale_30", "daily_sales", "stock_divided_by_daily_sales")
    def daily_sales(self, obj):
        return obj.day_sale_30/30
    def stock_divided_by_daily_sales(self, obj):
        return obj.Product__STOCK/(obj.day_sale_30/30) 

我得到如下错误::

AttributeError at /admin/myapp/order/
'Order' object has no attribute 'Product__STOCK'
Request Method: GET
Request URL:    http://127.0.0.1:8000/admin/myapp/order/
Django Version: 3.0.1
Exception Type: AttributeError
Exception Value:    
'Order' object has no attribute 'Product__STOCK'

感谢帮助!!!

我认为使用 obj.Product.STOCK 而不是 obj.Product__STOCK 可以解决问题