Файл JavaScript не загружен на пользовательской странице администратора Django

Я добавил пользовательскую страницу, содержащую форму, на моем сайте администратора Django. Для этого я написал этот код:

class MyForm(forms.Form):

    class Media:
        js = ('js/foo.js',)

    my_number = forms.IntegerField(
        required=True,
        min_value=1,
        max_value=10,
        label='Magic number'
    )

И этот код:

form = MyForm()
context = self.each_context(request)
context.update({'form': form})
return render(request, 'admin/players/foo.html', context)

Моя проблема в том, что JS не выполняется/не загружается, потому что, если я добавлю в него следующую строку, ничего не произойдет:

alert('foo');

Странно то, что у меня есть очень похожая вещь где-то еще, и она работает как шарм:

class MyModelAdmin(admin.ModelAdmin):
    list_display = ('bar1', 'bar2',)
    search_fields = ('bar1',)

    class Media:
        js = ('js/bar.js',)

Я проверил свойство media в обоих случаях и получил следующее:

<script type="text/javascript" src="/static/js/foo.js"></script>
<script type="text/javascript" src="/static/js/bar.js"></script>

По крайней мере, путь к файлу в порядке.

Что я пропустил?

ОБНОВЛЕНИЕ: После принятого ответа я добавил в свой шаблон следующие строки:

{% block extrahead %}
    {{ form.media }}
{% endblock %}

person Rodolphe    schedule 16.12.2016    source источник
comment
Оба файла находятся в папке utils. Но вы пытаетесь импортировать его как js/foo.js. Вы пытались изменить его как js/utils/foo.js ?   -  person alix    schedule 16.12.2016


Ответы (1)


Вам нужно добавить {{form.media}} в шаблон foo.html.

person neverwalkaloner    schedule 16.12.2016
comment
Вы спасли мой день. Большое спасибо! - person Rodolphe; 16.12.2016
comment
Ой... Мой JS загружается, но теперь я получаю ошибку django is notdefined... Вы случайно не знаете решение этой проблемы? - person Rodolphe; 16.12.2016
comment
@Rodolphe проверьте это stackoverflow.com/questions/ 10583652/ - person neverwalkaloner; 16.12.2016
comment
Спасибо. Это действительно помогает. Но я удивлен, что мне не нужно было вручную включать jquery, когда я настраивал свою другую страницу. Это было автоматически включено... Спасибо в любом случае! - person Rodolphe; 16.12.2016