Django Admin Custom Add

Допустим, у меня есть модель Book:

class Book(EOModel):
    title = models.CharField(max_length=100, null=False, blank=False)
    subtitle = models.CharField(max_length=100, null=True, blank=True)
    open_library_key = models.CharField(max_length=32, null=True, blank=True)
    ...
    location = models.ForeignKey(Order, null=False, blank=False, on_delete=models.PROTECT)

В модели Book есть функция classmethod, позволяющая получить запись с помощью идентификатора openlibrary ID.

@classmethod
def from_open_library(cls, open_library_key: str, location: Order) -> Self:
    data = open_library_get_book(open_library_key)
    ...
    book.save()
    
    return book

Так, если задать правильный идентификатор openlibrary и объект Order, from_open_library создаст новую запись.

Мой вопрос в том, как я могу реализовать страницу администратора django для этого? Могу ли я добавить «добавить через openlibrary» рядом с кнопкой добавления? На странице есть поле char для получения ID и выпадающий список Order для выбора.

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