如何在 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
可以解决问题
想用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
可以解决问题