Django使用唯一键而不是主键

时间:2018-06-06 01:52:51

标签: python django django-models many-to-many

我有一个django模型,它具有自我,不对称的多对多关系。 我希望该关系使用除表的主键字段之外的唯一标识字段来引用对象。

我找不到任何关于为ManyToMany对象的外键指定字段的文档,用于标识相关对象。有没有办法做到这一点?

以下是一个例子:

class Annotation(models.Model):
      uuid = models.UUIDField(null=True, unique=True, editable=False)
      data = models.TextField()
      dependencies = models.ManyToManyField('self', symmetrical=False,
                                            related_name="dependents")

在上面的示例中,依赖关系将是IntegerField s到IntegerField的映射,因为这是id中隐式创建的Annotation主键的字段类型。

相反,我希望关系表(用于维护关系)将使用我手动定义的uuid字段(而不是id字段)。

理想情况下,我会假设将self(第一个参数更改为ManyToManyField)替换为self.uuidAnnotation.uuid会做到这一点,但不幸的是,这会出现以下错误:

ValueError: Related model 'Annotation.uuid' cannot be resolved

0 个答案:

没有答案