我在我的Django管理站點添加了一個包含表單的自定義頁面。 要做到這一點,我寫了這個代碼:JavaScript文件未加載在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>
所以至少,該文件路徑是確定。
我錯過了什麼?
UPDATE: 繼接受的答案,我加入我的模板下面幾行:
{% block extrahead %}
{{ form.media }}
{% endblock %}
這兩個文件都出現在'utils'文件夾下。但是你試圖將它作爲'js/foo.js'導入。你有沒有嘗試像'js/utils/foo.js'那樣改變它? – alix