Я добавил пользовательскую страницу, содержащую форму, на моем сайте администратора 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 %}
utils
. Но вы пытаетесь импортировать его какjs/foo.js
. Вы пытались изменить его какjs/utils/foo.js
? - person alix   schedule 16.12.2016