这看起来很简单。Django管理模式保存 - 更新现有的对象
在我的模型save()
我想基本上做一个get_or_create()
。所以我想更新模型,如果它存在或创建一个新的,如果不存在。
这似乎是一个超级简单的问题,但我没有得到它的权利!
class StockLevel(models.Model):
stock_item = models.ForeignKey(StockItem)
current_stock_level = models.IntegerField(blank=True, default=0)
def save(self):
try:
# it exists
a = StockLevel.objects.get(stock_item=self.stock_item)
a.current_stock_level = self.current_stock_level
a.save()
except:
# is does not exist yet
# save as normaly would.
super(StockLevel, self).save()
OR
def save(self):
stock_level_item , created = StockLevel.objects.get_or_create(stock_item=self.stock_item)
stock_level_item.current_stock_level = self.current_stock_level
stock_level_item.save()
这也将进入一个无限循环。
这会将save()放在一个无限循环中。但这是它应该如何工作的基本思想。
请显示一些代码。 –