2016-12-16 85 views
1

我在我的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 %} 
+0

這兩個文件都出現在'utils'文件夾下。但是你試圖將它作爲'js/foo.js'導入。你有沒有嘗試像'js/utils/foo.js'那樣改變它? – alix

回答

1

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

+0

你節省了我的一天。非常感謝! – Rodolphe

+0

@Rodolphe歡迎您! :) – neverwalkaloner

+0

糟糕...我的JS加載,但現在我得到「Django未定義」的錯誤...你碰巧知道這個問題的解決方案? – Rodolphe