我想使用
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.
我能做什么?
删除旧迁移并创建新迁移。如果您的数据不重要或者您有数据备份,重新创建数据库也会有所帮助。