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
для выбора.