我已经安装了django-admin-tools并在我的项目中创建了一个dashboard.py 文件夹中。
在此文件中,我指定了一个媒体类:
#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'
我的网址配置如下:
#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 :(得分:1)
我认为这可能是因为jjang函数已在django admin中重命名以避免冲突。
如果你可以在view-source中看到正在加载的jquery文件,并且在控制台中输入$会产生该错误,那么试试django.jQuery
如果你想使用$,你需要做一些像$ = django.jQuery,然后在你脚本的底部,把它放回到django.jQuery
请参阅https://github.com/philippbosch/django-geoposition/blob/master/geoposition/static/geoposition/geoposition.js作为例如。
答案 1 :(得分:0)
你是对的,admin_tools已经包含了jquery。除非您需要更新的版本,否则最好使用附带的版本。或者即使没有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以包含外部文件。