Когда я добавляю несколько строк в мой django admin
, как показано ниже, Add another {model name}
исчезает.Если я проверяю консоль javascript, я вижу, что получаю следующую ошибку:
Uncaught TypeError: Невозможно прочитать свойство 'fn' из неопределенного
в inlines.js: 20
at inlines.js: 295
Вот мой админ Django:
@admin.register(models.Paper)
class PaperAdmin(BaseLiteratureAdmin):
class EditedPaperAdminInline(admin.StackedInline):
model = models.EditedPaper
extra = 0
class SupplementaryInformationAdminInline(admin.StackedInline):
model = models.SupplementaryInformation
extra = 0
class PaperNotesAdminInline(BaseNotesAdminInline):
exclude = tuple(
i for i in BaseNotesAdminInline.exclude if i != 'paper'
)
class ReferencedPaperInline(admin.StackedInline):
model = models.Paper.referenced_papers.through
extra = 0
fk_name = 'from_paper'
verbose_name = "Referenced Paper"
verbose_name_plural = "Referenced Papers"
inlines = (
EditedPaperAdminInline, # problem
PaperNotesAdminInline, # ok single/together
ReferencedPaperInline, # ok single/together
SupplementaryInformationAdminInline, # problem
)
Вот что я хотел бы увидеть:
Вот что я вижу:
И я нашел решение - это изменить порядок строк в списке inlines
, вот так:
inlines = (
PaperNotesAdminInline, # ok single/together
ReferencedPaperInline, # ok single/together
EditedPaperAdminInline, # problem
SupplementaryInformationAdminInline, # problem
)
#comments рядом с каждым встроенным примечанием, что PaperNotesAdminInline
и ReferencedPaperInline
оба 'OK' в том, что ссылка Add another {model name}
все еще появляется, если они включены.Две другие строки, если они добавлены в порядке, указанном в определении модели администратора, приводят к ошибке JavaScript и исчезают ссылки для каждой строки.Однако, если я изменю порядок на второй список inlines
, все загрузится правильно.
Что здесь происходит?