2012-03-12 6 views
0

私はdjango-admin-toolsをインストールして、プロジェクト フォルダにdashboard.pyを作成しました。Django:django-admin-tools:カスタムjsを追加

私はメディアクラス指定している、このファイル内:私は私の設定で

#myproject/dashboard.py 
class Media: 
     css = ('',) 
     js = ('http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/ 
jquery.min.js',) 

#settings.py 
# admin_tools 
ADMIN_TOOLS_INDEX_DASHBOARD = 
'myproject.dashboard.CustomIndexDashboard' 
ADMIN_TOOLS_APP_INDEX_DASHBOARD = 
'myproject.dashboard.CustomAppIndexDashboard' 

をし、次のように私のURLが設定されている:

#urls.py 
... 
urlpatterns+= patterns('', 
     url(r'^admin_tools/', include('admin_tools.urls')), 
     url(r'^admin/', admin.site.urls), 

     url(r'', include('feincms.urls')), 

) 

誰でも目障りなミスを見ますか? jqueryファイルがfirebugにダウンロードされた は表示されません。私はjqueryもadmin_tools、 の一部だと仮定しますが、このエラーメッセージはそうではないと思われますか?

Uncaught TypeError: Property '$' of object [object DOMWindow] is not a 
function 

助けてください。

+0

htmlソースを確認してください。 –

+0

どういう意味ですか? jqueryが「手動で」含まれている場合、コードが機能します。管理ツールがなければ、すべてが同様に機能します... –

+0

下記のeschlerの回答を参照してください。 –

答えて

0

jqueryは既にadmin_toolsに含まれています。新しいバージョンが必要な場合を除き、付属のものを使用する方が良いでしょう。それともMediaクラスがなくてもロードされないのですか?

設定では、外部ホストからjqueryをロードすることに問題があります。しかし、これもうまくいくと思いますが、ファイルを挿入するadmin_toolsのdashboard.htmlテンプレートを見ると、各jsファイルの先頭に{{ media_url }}が追加されています。結果は'/media/http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js'のような無効なインクルードです。これは明らかにadmin_toolsの問題です、私はバグレポートを提出します。

回避策として、Mediaクラスを削除し、外部ファイルを含めるためにdashboard.htmlを上書きすることがあります。

1

これはおそらく、jQuery関数がdjango管理者で名前が変更されて競合が起こるのを防ぐためです。
jqueryファイルがview-sourceにロードされていることがわかり、コンソールに$を入力するとそのエラーが発生し、django.jQueryを試してみてください。
$を使用する場合は、$ = django .jQuery、そしてスクリプトの最後にdjango.jQueryに戻してください。
たとえば、https://github.com/philippbosch/django-geoposition/blob/master/geoposition/static/geoposition/geoposition.jsを参照してください。

+0

正確には、これは機能します! – yablokoff

関連する問題