JavaScript 文件未加载到 Django 自定义管理页面中

JavaScript file not loaded in Django custom admin page

我在我的 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 没有 execute/load 因为如果我在其中放入以下单行,什么也不会发生:

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 %}

您需要将 {{form.media}} 添加到 foo.html 模板中。