Это кажется действительно простым.
На моей модели 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 () в бесконечный цикл. Но это основная идея того, как это должно работать.