gpt4 book ai didi

django - 南迁移错误: name 'UUID' is not defined

转载 作者:行者123 更新时间:2023-12-04 03:12:21 31 4
gpt4 key购买 nike

我有一个带有默认值为 uuid4 的 CharField 字段的模型:

f = models.CharField(default=uuid4, max_length=36, unique=True, blank=True)

这导致以下错误:

Cannot successfully create field 'f' for model 'm': name 'UUID' is not defined.



运行迁移命令!我可以解决这个问题吗?到目前为止,我尝试过:
  • 在模块中为 uuid 定义“包装函数”(即:def getUUID())
  • 通过覆盖模型构造函数
  • 来设置“f”的默认值

    ...但问题仍然存在:(

    附言。我知道我可以向南指导自定义字段,但我认为我没有使用自定义字段:P

    最佳答案

    我解决了在模型模块中定义以下辅助函数的问题:

    from uuid import uuid4

    def generateUUID():
    return str(uuid4())

    然后:
    f = models.CharField(default=generateUUID, max_length=36, unique=True, editable=False)

    south 将生成一个带有生成的 UUID 的迁移文件 (migrations.0001_initial),例如:
    default='5c88ff72-def3-4842-8d48-a75bb3240bb5'

    这很不高兴......因为该字符串是“静态的”,而是必须使用辅助函数动态创建......无论如何,在 django 的世界中,al 似乎按预期工作......我在数据库中添加了一些记录和一个为每个生成新的 UUID。然后,我通过向我的模型添加几个字段来尝试我的第一个模式迁移,并且它们已按预期添加到数据库表中。

    关于django - 南迁移错误: name 'UUID' is not defined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15041265/

    31 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com