Search code examples
javascriptjquerydjangodjango-adminautocomplete-fields

What is the connection between autocomplete_fields and JS in Media class?


I use Django.
My 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',
        )

If I open SectionAdmin on admin page the file card_in_section.js will not work.
If I remove autocomplete_fields from CardInlineAdmin the file card_in_section.js will work.
What is the reason of such behavior?


Solution

  • I solved my problem)
    I checked Network on admin page and understood that for some reason my file card_in_section.js loaded before autocomplete.js.
    So, I tried to add autocomplete.js to class Media before card_in_section.js and it solved my problem.

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