我有一个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.uuid
或Annotation.uuid
会做到这一点,但不幸的是,这会出现以下错误:
ValueError: Related model 'Annotation.uuid' cannot be resolved