(Django RF) Невозможно установить 'to_field' в модели ForeignKey
У меня есть четыре модели, как показано ниже:
class Sample(models.Model):
sample_ID = models.CharField(max_length=10, unique=True)
def __str__(self):
return str(self.sample_ID)
class Image(models.Model):
image_ID = models.CharField(max_length=50, primary_key=True, unique=True)
image_sample = models.ForeignKey(Sample, on_delete=models.CASCADE, related_name='image_sample')
image = models.ImageField(upload_to='images')
def __str__(self):
return str(self.image_ID)
class Label(models.Model):
AI_sample = models.ForeignKey(Sample, on_delete=models.CASCADE, related_name='AI_sample')
AI_defect = models.BooleanField()
def __str__(self):
return str(self.AI_sample)
class Manual(models.Model):
manual_sample = models.ForeignKey(Sample, on_delete=models.CASCADE, related_name='manual_sample')
manual_image = models.ForeignKey(Image, on_delete=models.CASCADE, to_field='image_ID')
manual_defect = models.BooleanField()
def __str__(self):
return str(self.manual_sample)
Manual является ForeignKey к Sample & Image. и Image также является ForeignKey к Sample. Теперь я настроил поле image_ID для to_field в manual_image, чтобы я мог ссылаться на него, используя мое поле custome. Однако, когда я пытаюсь сделать то же самое для manual_sample и sample_ID, manual_sample превращается в null в следующее значение:
sample:
[
{
"id": 1,
"sample_ID": "a000001",
"AI_sample": [],
"manual_sample": []
}
]
manual_sample:
[
{
"id": 3,
"manual_sample": null,
"manual_image": "p01",
"manual_defect": true
},
{
"id": 5,
"manual_sample": null,
"manual_image": "p02",
"manual_defect": false
}
]
На данный момент моя конечная точка API выглядит следующим образом:
[
{
"id": 1,
"sample_ID": "a000001",
"AI_sample": [],
"manual_sample": [
{
"id": 3,
"manual_sample": 1,
"manual_image": "p01",
"manual_defect": true
},
{
"id": 5,
"manual_sample": 1,
"manual_image": "p02",
"manual_defect": false
}
]
}
]
Я хочу преобразовать manual_sample: 1 в manual_sample: a000001. Кто-нибудь знает, как это сделать? Очень признателен.