我不確定這甚至可以在不修改管理界面的情況下實現。Django:基於其他字段更新字段值
我有一個名爲「Quote」的模型,可以包含多個「產品」模型。我使用中間模型「QuoteIncludes」連接兩個。這裏有三種模式,因爲他們目前站:
class Product(models.Model):
name = models.CharField(max_length=100)
short_desc = models.CharField(max_length=200)
default_cost = models.DecimalField(max_digits=15, decimal_places=2)
default_price = models.DecimalField(max_digits=15, decimal_places=2)
shipping_per_unit = models.DecimalField(max_digits=9, decimal_places=2)
weight_in_lbs = models.DecimalField(max_digits=5, decimal_places=2)
def __unicode__(self):
return self.name
class Quote(models.Model):
## Human name for easy reference
name = models.CharField(max_length=100)
items = models.ManyToManyField(Product, through='QuoteIncludes')
def __unicode__(self):
return self.name
class QuoteIncludes(models.Model):
## Attach foreign keys between a Quote and Product
product = models.ForeignKey(Product)
quote = models.ForeignKey(Quote)
## Additional fields when adding product to a Quote
quantity = models.PositiveIntegerField()
per_unit_cost = models.DecimalField(max_digits=15, decimal_places=2)
per_unit_price = models.DecimalField(max_digits=15, decimal_places=2)
def _get_extended_price(self):
"""Gets extended price by multiplying quantity and unit price."""
if self.quantity and self.per_unit_price:
return self.quantity * self.per_unit_price
else:
return 0.00
extended_price = _get_extended_price
我想做什麼就能做的是建立在管理界面中的報價,這樣當我填寫的數量和a的per_unit_price訂單項,當我標籤結束時,它會填充「extended_price」作爲兩者的產品。我認爲它需要在那裏添加一些AJAX。
無論您使用哪種解決方案,如果您不希望用戶能夠以自己的價格提交任意值,請注意安全性。 – user27478 2010-08-26 20:10:47
那麼,這個觀點將用於「引用」產品列表,因此編輯這些編號的人員能夠根據需要調整它們是有意的。感謝您指出它。 – akoumjian 2010-08-27 13:37:32