Модели Django с взаимоисключающими ссылками

Мне кажется, что у меня в голове полный сумбур, и я хотел бы получить помощь, пожалуйста. Я новичок в этом, так что будьте мягче.

У меня есть модель сердечника трансформатора:

class Core(models.Model):
    name = models.CharField(max_length=100, default="")
    laminations = models.ForeignKey(Lamination, on_delete=models.CASCADE)
    ccore= models.ForeignKey(Ccore, on_delete=models.CASCADE)
    stack = models.FloatField()
    stack_factor = models.FloatField(default=0.92)

    def __str__(self):
        return self.name

Я не думаю, что делаю это правильно. Ядро может иметь либо ламинирование OR ccore, но не оба.

Как установить взаимосвязь между Core и lamination и ccore, чтобы я мог выбрать, какой из них (возможно, с опозданием на другой тип) является действительным?

Я думал о том, чтобы иметь выбор под названием core_type, который фронт-энд сможет изменить, и в зависимости от этого выбора один из этих ForeignKeys будет установлен в NULL. Но это кажется мне неправильным.

Вернуться на верх