Django 中列外键是 bigint 类型,但表达式是 uuid 类型

问题描述 投票:0回答:1

我想使用

UUIDField
作为主键。这是我的模型:

class Organization(models.Model):
    id = models.UUIDField(default=uuid.uuid4, primary_key=True, editable=False)
    name = models.CharField(max_length=124)

一切都好。但是当我想在这个模型中使用

id
模型的
Organization
来表示
ForeignKey
时:

class Member(models.Model):
    reference = models.ForeignKey('Organization', null=True,  on_delete=models.PROTECT)
    name = models.CharField(max_length=124)

我收到此错误:

    django.db.utils.ProgrammingError: column "reference" is of type bigint but expression is of type uuid
    LINE 1: "reference" = 'af104709-...
                          ^
    HINT:  You will need to rewrite or cast the expression.

我能做什么?

python django django-models uuid
1个回答
0
投票

删除旧迁移并创建新迁移。如果您的数据不重要或者您有数据备份,重新创建数据库也会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.