创建或增加现有实例的 UpdateView
UpdateView that creates or increments existing instance
我有一个模型可以跟踪以特定价值“购买”了多少物品。
例如,可以将物品视为股票,将价值视为购买价格。
class Inventory(models.Model):
item = models.ForeignKey(Item, on_delete=models.CASCADE)
quantity = models.PositiveIntegerField()
value = models.PositiveIntegerField()
class Meta:
db_table = 'app_version'
constraints = [
models.UniqueConstraint(fields=['item', 'value'], name='unique valued items')
]
现在,我正在尝试编写一个基于 class 的 Create/UpdateView
,其中一个简单地声明以什么价格购买了哪件商品。然后,视图应创建一个新实例或增加现有实例的数量。
我已经发现 UpdateView
可能是最好的开始,因为我可以覆盖 get_object
方法以获得这种“创建或更新”行为。
但是,我不确定如何进行递增。
也许我也完全走错了路,这里缺少一个更简单的解决方案。
如果能就如何解决这个问题获得一些想法和意见,那就太好了。
非常感谢!
只需使用get_or_update method. It allows you to know it's new instance or from db. But if you want to create an api, it's the better way to use django rest framework。它附带了许多用于快速 api 创建的内置工具。
我有一个模型可以跟踪以特定价值“购买”了多少物品。 例如,可以将物品视为股票,将价值视为购买价格。
class Inventory(models.Model):
item = models.ForeignKey(Item, on_delete=models.CASCADE)
quantity = models.PositiveIntegerField()
value = models.PositiveIntegerField()
class Meta:
db_table = 'app_version'
constraints = [
models.UniqueConstraint(fields=['item', 'value'], name='unique valued items')
]
现在,我正在尝试编写一个基于 class 的 Create/UpdateView
,其中一个简单地声明以什么价格购买了哪件商品。然后,视图应创建一个新实例或增加现有实例的数量。
我已经发现 UpdateView
可能是最好的开始,因为我可以覆盖 get_object
方法以获得这种“创建或更新”行为。
但是,我不确定如何进行递增。
也许我也完全走错了路,这里缺少一个更简单的解决方案。 如果能就如何解决这个问题获得一些想法和意见,那就太好了。
非常感谢!
只需使用get_or_update method. It allows you to know it's new instance or from db. But if you want to create an api, it's the better way to use django rest framework。它附带了许多用于快速 api 创建的内置工具。