我試圖在創建新項目並基於新創建的項目的ID後更新同一模型的其他項目。這就是爲什麼我必須在保存後做到這一點。但我發現了以下錯誤:保存時的最大遞歸深度錯誤
maximum recursion depth exceeded
的item
對象似乎是有效的,for循環本身不是遞歸迭代,並通過item
對象正常。介紹save()會引發錯誤。 Obviuosly我似乎不完全理解save()方法的內部工作原理。感謝任何幫助。
代碼:
class SimCardInTracker(models.Model):
tracker = models.ForeignKey(Tracker)
simcard = models.ForeignKey(SimCard)
start = models.DateTimeField(auto_now_add=True, unique=True)
end = models.DateTimeField(null=True, blank=True)
def __unicode__(self):
return self.tracker.serial_no
def save(self, *args, **kwargs):
super(SimCardInTracker, self).save(*args, **kwargs)
prev_items = SimCardInTracker.objects.exclude(id = self.id).filter(tracker__id = self.tracker.id)
for item in prev_items:
item.end = datetime.datetime.now()
item.save()
+1澄清。謝謝! –