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
模板中。
我在我的 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
模板中。