Media类中的autocomplete_fields和JS有啥联系?

Posted

技术标签:

【中文标题】Media类中的autocomplete_fields和JS有啥联系?【英文标题】:What is the connection between autocomplete_fields and JS in Media class?Media类中的autocomplete_fields和JS有什么联系? 【发布时间】:2021-12-18 17:36:45 【问题描述】:

我使用 Django。 我的admin.py

class CardInlineAdmin(admin.StackedInline):
    model = Card
    autocomplete_fields = ['project', 'course', 'vacancy', 'news', ]

@admin.register(Section)
class SectionAdmin(admin.ModelAdmin):
    list_display = ('name', 'id', 'priority', 'is_active',)
    inlines = (CardInlineAdmin,)
    search_fields = ['project', 'course', 'vacancy', 'news']

    class Media:
        js = (
            '//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js',
            'js/card_in_section.js',
        )

如果我在管理页面上打开 SectionAdmin,文件 card_in_section.js 将不起作用。 如果我从 CardInlineAdmin 中删除 autocomplete_fields,则文件 card_in_section.js 将起作用。 这种行为的原因是什么?

【问题讨论】:

【参考方案1】:

我解决了我的问题) 我在管理页面上检查了Network 并了解到由于某种原因我的文件card_in_section.jsautocomplete.js 之前加载。 所以,我尝试在card_in_section.js 之前将autocomplete.js 添加到class Media,它解决了我的问题。

class Media:
        js = (
            '//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js',
            'admin/js/autocomplete.js',
            'js/card_in_section.js',
        )

【讨论】:

以上是关于Media类中的autocomplete_fields和JS有啥联系?的主要内容,如果未能解决你的问题,请参考以下文章