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

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

但是当保存我的模型时,我得到:
调用 Python 对象时超出最大递归深度,并且数据库中有 997 个 QUUID 对象。为什么会发生这种情况?

最佳答案

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

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

关于python - 提供唯一 ID 时超出最大递归深度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3991008/

相关文章:

python - Django ORM : How to query for the latest row based on a another attribute

python - 使用 del 和切片是否会先创建一个新对象,然后再删除?会就位吗?

python - 如何将许可证文本添加到 cx_freeze bdist_msi?

Python 3.4 和 2.7 安装没有 Script 文件夹,也没有安装 pip

django - django:将所有列作为列表获取

python - 使用ajax在基于django类的 View 中找不到url

django - 在Django的多表继承中,upload_to参数可以被覆盖吗?

python - 导入错误 : No module named modelsinspector

python - 如何让我的用户将歌曲添加到 django 中的专辑中

python - 通过组合元组元素获取元组列表的产品?