Javascript Django Admin StackedLine未加载添加另一个模型,未捕获类型错误:无法读取属性';fn';未定义的

Javascript Django Admin StackedLine未加载添加另一个模型,未捕获类型错误:无法读取属性';fn';未定义的,javascript,python,django,python-3.x,Javascript,Python,Django,Python 3.x,当我向我的django admin添加许多内联线时,如下图所示,添加另一个{model name}将消失。如果我检查javascript控制台,我会看到以下错误: 未捕获的TypeError:无法读取未定义的属性“fn” 在inlines.js:20 在inlines.js:295 这是我的Django管理员: @admin.register(models.Paper) class PaperAdmin(BaseLiteratureAdmin): class EditedPaperAd

当我向我的
django admin
添加许多内联线时,如下图所示,
添加另一个{model name}
将消失。如果我检查javascript控制台,我会看到以下错误:

未捕获的TypeError:无法读取未定义的属性“fn”

在inlines.js:20

在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的顺序,如下所示:

inlines = (
        PaperNotesAdminInline, # ok single/together
        ReferencedPaperInline, # ok single/together
        EditedPaperAdminInline, # problem
        SupplementaryInformationAdminInline, # problem
        
    )
每个内联注释旁边的#注释表明
PaperNotesAdminInline
ReferencedPaperInline
都是“OK”的,因为
添加另一个{model name}
链接(如果包括它们)仍然出现。如果按照管理模型定义中所示的顺序添加其他两个内联,则会导致JavaScript错误和每个内联的链接消失。但是,如果我将顺序更改为第二个
inlines
列表,则所有内容都会正确加载


这是怎么回事?

我的项目也有同样的问题,在jQuery之前加载了一个大型富表单脚本inline.js,并产生了一个错误。 我将changed inline.js添加到我的项目文件夹中,它检查jQuery是否加载,如果没有加载,它将等待300毫秒,然后重试。 在这里打补丁

--- django/contrib/admin/static/admin/js/inlines.js
+++ myproject/myproject/static/admin/js/inlines.js
@@ -15,7 +15,8 @@
  * Licensed under the New BSD License
  * See: http://www.opensource.org/licenses/bsd-license.php
  */
-(function($) {
+
+function start_inline($) {
     'use strict';
     $.fn.formset = function(opts) {
         var options = $.extend({}, $.fn.formset.defaults, opts);
@@ -292,4 +293,16 @@
             }
         });
     });
-})(django.jQuery);
+};
+
+function start_inline_loader() {
+    try {
+        start_inline(django.jQuery);
+
+    } catch(e) {
+        console.log('no jQuery, try again after 300 mc');
+        setTimeout( function() {start_inline_loader();}, 300)
+    }
+}
+
+start_inline_loader();