У меня есть модель 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
с IntegerField
с, потому что этоТип поля первичного ключа id
, неявно созданного в Annotation
.
Вместо этого я хотел бы, чтобы в таблице отношений (используемой для поддержания отношений) использовалось поле uuid
, которое я определил вручную (вместоid
field).
В идеале я бы предположил, что замена self
(первый параметр на ManyToManyField
) на self.uuid
или Annotation.uuid
сделает именно это, но, к сожалению, эта ошибка со следующим:
ValueError: Related model 'Annotation.uuid' cannot be resolved