2010-10-21 80 views
2

我想爲我的數據庫中不同類型的模型提供唯一標識。所以我介紹了一個假人模型:提供唯一標識時超出最大遞歸深度

class GUUID(models.Model): 
    guuid = models.PositiveSmallIntegerField(_(u"Dummy GUUID"), default=1) 

和模式,我想有唯一的ID:

class Event(models.Model): 
    unique = models.IntegerField(blank=False, editable=False) 

    def save(self): 
     guuid = GUUID() 
     guuid.save() 
     self.unique = guuid.id 
     self.save() 

可是救了我的模型時,我得到:
maximum recursion depth exceeded while calling a Python object和997 QUUID在db中運行。爲什麼會發生?

回答

6

我想你想用super(Event, self).save()替換self.save()。也可能不是一個壞主意,從事件保存方法中抓取參數並傳遞它們:

def save(self, *args, **kwargs): 
    #... other code here 
    super(Event, self).save(*args, **kwargs) 
+0

該死的我完全忘記了這一點。謝謝 ! – owca 2010-10-21 19:26:01

相關問題