Подключение модели к другой модели при сохранении в панели администратора

Простите за мой плохой английский, но я даже не знаю, как правильно описать мою проблему.

У меня есть 3 модели:

class Book(models.Model):
     source=models.ForeignKey(Original, on_delete=models.CASCADE,
                           related_name='book', null=True, blank=True)
    ...

class Original(models.Model):

    ...

class Title(models.Model):
    book = models.OneToOneField(Book, on_delete=models.CASCADE,
                             related_name='item', null=True, blank=True)
    original = models.OneToOneField(Original, on_delete=models.CASCADE,
                             related_name='item', null=True, blank=True)
    original_name = models.CharField(max_length=300, null=True, blank=True)
    ...

На моей странице администратора, когда я создаю экземпляр Book, я записываю его имя в модель Title как inline, и я хочу иметь опцию:

1.Заполнить форму original_name вручную, если источник не указан

2.Если источник указан, оставьте это поле пустым, но при сохранении соедините этот экземпляр Book с полем book в модели Title, которое связано с экземпляром модели Original.

В итоге я хочу иметь Title модель, которая имеет original_name и ссылки на original и book экземпляры, если source даны, и из которой в будущем я могу ссылаться на original_name, когда это необходимо

Я пытался реализовать это с помощью функции save_model, но я не знаю, как установить Book экземпляр в качестве book поля в Title модели

Я думаю, что это должно быть довольно легко, но я не знаю, с чего начать, и это расстраивает...

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