我有一个Django模型:
class Item_received_log(models.Model):
name = models.CharField(max_length=250)
quantity = models.FloatField(default=1)
class Inventory (models.Model):
name = models.CharField(max_length=250)
quantity = models.FloatField(default=1)
我希望每次使用匹配名称发布 Item_received_log 的新项目时,都会更新 Inventory.quantity 。我不确定它是否正确,但我已决定覆盖Item_received_log类的保存方法,以便在保存时更新库存清单:
def save(self, *args, **kwargs):
obj, created = Inventory.objects.update_or_create(
name=self.name,
defaults = {'quantity':(quantity + self.quantity)})
super(Item_received_log, self).save(*args, **kwargs)
回报: 名称错误在/ admin / accountable_persons / item_received_log / 17 /更改/ 全球名称'数量'未定义
如何解决我的问题或提出更好的解决方案?
答案 0 :(得分:2)
如果我们可以简单地将function smaller(arr) {
var out = [0];
var len = arr.length;
for (var i=len - 2; i >= 0; i--) {
var c = 0;
for (var j = i + 1; j < len; j++) {
if (arr[i] == arr[j]) {
c += out[j - i - 1];
break;
} else if (arr[i] > arr[j]) {
c++;
}
}
out.unshift(c);
}
return out;
}
var testArr = [1,5,2,7,44,878,1,22,999,222,1,1,1,1,1,1,1,1,1,1,1,1,1];
alert(smaller(testArr).join(","));
表达式放入F()
的默认部分来完成所有魔术,那会更容易,但请求此功能的issue仍然是开。
但是,您现在可以使用更详细的方法:
update_or_create