提供唯一ID时超出了最大递归深度

时间:2010-10-21 19:09:00

标签: python django django-models recursion uniqueidentifier

我想在我的数据库中为不同类别的模型提供唯一ID。所以我介绍了一个虚拟模型:

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()

但是当我保存我的模型时,我得到了:
db中有maximum recursion depth exceeded while calling a Python object和997 QUUID对象。为什么会这样?

1 个答案:

答案 0 :(得分:6)

我认为您要将self.save()替换为super(Event, self).save()。从事件保存方法中获取参数并传递它们也可能不是一个坏主意:

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