Как добавить JS файл в Django Admin непосредственно перед закрывающим тегом тела - PullRequest
0 голосов
/ 07 мая 2020

Я вставляю два сценария в Djna go Admin следующим образом:

class TutorialAdmin(admin.ModelAdmin):
    class Media:
        js = (
            'tutorials/js/ckeditor.js',
            'tutorials/js/custom.js',
        )

    formfield_overrides = {
            models.TextField: {'widget': Textarea(
                attrs={'id': 'custom_textarea'})}
        }

Обратите внимание на formfield_overrides, где я добавляю теги id custom_textarea в textarea, чтобы я мог получить их позже через javascript.

Если мы посмотрим на мой custom.js файл:

ClassicEditor
     .create( document.querySelector( '#custom_textarea' ) )
     .catch( error => {
            console.error( error );
        } );

Это файл, который получает элемент с идентификатором custom_textarea.

Но проблема в том, что эти файлы добавляются в тег head, поэтому они запускаются, как только страница загружается (до отображения textarea).

Я получаю следующую ошибку в Chrome console:

TypeError: Cannot read property 'appendChild' of null

Есть ли способ дать команду Django ввести custom.js непосредственно перед закрывающим тегом body? Я знаю решение, позволяющее редактировать свое приложение base.html в admin. Но мне интересно, есть ли Django Way таких действий!

Спасибо.

...