如何访问admin.TabularInlin上的字段模型

2024-10-01 15:42:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我是django的新手,我想构建一个名为“回收银行”的应用程序

这是我的模特

class Waste(models.Model):
    name = models.CharField(max_length=20)
    wtype = models.ForeignKey(WasteType)
    specification = models.TextField(blank=True)
    purchasing_price = models.DecimalField(max_digits=8, decimal_places=2)
    selling_price = models.DecimalField(max_digits=8, decimal_places=2)

class Purchasing(models.Model):
    timestamp = models.DateTimeField(auto_now=True)
    client = models.ForeignKey(Client)
    officer = models.ForeignKey(Officer)
    waste = models.ManyToManyField(Waste, through='PurchasingDetail')

    def __str__(self):
        return self.client.user.username

class PurchasingDetail(models.Model):
    waste = models.ForeignKey(Waste)
    purchasing = models.ForeignKey(Purchasing)
    weight = models.DecimalField(max_digits=8, decimal_places=2)
    price = models.DecimalField(max_digits=8, decimal_places=2)

这是我的管理员

class PurchasingDetailInlineAdmin(admin.TabularInline):
    model = PurchasingDetail
    extra = 1

class PurchasingAdmin(admin.ModelAdmin):
    list_display = ['client', 'timestamp', 'officer',]
    fields = ('client',)
    inlines = [PurchasingDetailInlineAdmin,]

    def save_model(self, request, obj, form, change):
        obj.officer_id = request.user.id
        obj.save()

因此,我想在PurchasingDetail(models.Model)中设置具有指定计数的price对象(在本例中:Waste.purchasing_price*PurchasingDetail.weight)。我知道我必须像在save_model()上一样访问PurchasingDetail(models.Model)对象。如何做到这一点

这是我的管理界面截图https://drive.google.com/open?id=0B2dFcp9QmLL2X2duVHVfeVNHNlU

多谢各位


Tags: clientmodelmodelspricemaxclassdecimalplaces

热门问题