我想在admin中通过添加行内部件来显示计算机使用的总金额。
models.py
class Material(models.Model):
name = models.CharField(max_length=30, null=False, blank=False)
class Computer(models.Model):
name = models.CharField(max_length=90)
class UsedMaterial(models.Model):
computer = models.ForeignKey(Computer, on_delete=models.SET_NULL, null=True)
material = models.ForeignKey(Material, on_delete=models.SET_NULL, null=True)
cost = models.DecimalField(max_digits=11, decimal_places=2, null=False, blank=False, default=0)
quantity = models.IntegerField(null=False, blank=False, default=0)
admin.py
class UsedMaterialAdmin(admin.TabularInline):
model = UsedMaterial
def total(self, obj):
return obj.cost * obj.quantity
readonly_fields = ("total",)
fields = ("material", "cost", "quantity", "total" )
@admin.register(Computer)
class ComputerAdmin(admin.ModelAdmin):
inlines = [UsedMaterialInline]
fields = ("name",)
我已经找到了在内联中显示每篇文章总数的方法,如您所见屏幕截图但是我如何得到内联中所有材料的总和呢?
我有一个解决方案,我相信你可以获取你需要的信息。这样,您就可以看到项目的总数(如果您修改它,项目的总成本),并将其写入概要文件的list_display。
因为这是我的一个"正在进行"的项目,我没有费心去改变太多,所以我尽可能地注释和解释。英语不是我的第一语言,所以如果有什么难以理解的,请在下方提问!我测试了所有的东西,它工作得很好,可能是一个很好的解决方案,直到你找到一种方法让它在你的模型。
编辑:如果你想为每个库存有一个项目(以避免有重复的项目(示例)
<表类>
项目
数量
tbody><<tr>car_license 1 car_license 1 表类>