【发布时间】:2017-05-02 01:15:37
【问题描述】:
我在我的 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那样改变它?
标签: javascript python django forms media