首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django: django-admin-tools:添加自定义js

Django: django-admin-tools:添加自定义js
EN

Stack Overflow用户
提问于 2012-03-13 03:37:37
回答 2查看 1.2K关注 0票数 0

我已经安装了django-admin-tools并在我的项目文件夹中创建了一个dashboard.py。

在这个文件中,我指定了一个媒体类:

代码语言:javascript
复制
#myproject/dashboard.py 
class Media: 
        css = ('',) 
        js = ('http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/ 
jquery.min.js',) 

在我的设置中我有:

代码语言:javascript
复制
#settings.py
# admin_tools 
ADMIN_TOOLS_INDEX_DASHBOARD = 
'myproject.dashboard.CustomIndexDashboard' 
ADMIN_TOOLS_APP_INDEX_DASHBOARD = 
'myproject.dashboard.CustomAppIndexDashboard' 

我的URL配置如下:

代码语言:javascript
复制
#urls.py
... 
urlpatterns+= patterns('', 
        url(r'^admin_tools/', include('admin_tools.urls')), 
        url(r'^admin/', admin.site.urls), 

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

) 

有没有人看到什么明显的错误?我在firebug中没有看到jquery文件被下载。我假设jquery也是admin_tools的一部分,但是这个错误消息似乎表明它不是?

代码语言:javascript
复制
Uncaught TypeError: Property '$' of object [object DOMWindow] is not a 
function 

任何帮助都是非常感谢的。

EN

回答 2

Stack Overflow用户

发布于 2013-01-28 23:06:43

我认为这可能是因为为了避免冲突,在django admin中对jQuery函数进行了重命名。

如果您可以看到jquery文件被加载到view-source中,并且在控制台中输入$会产生该错误,那么可以尝试django.jQuery

如果要使用$,则需要执行类似$= django.jQuery的操作,然后在脚本的底部将其放回django.jQuery

https://github.com/philippbosch/django-geoposition/blob/master/geoposition/static/geoposition/geoposition.js看作一个eg.

票数 1
EN

Stack Overflow用户

发布于 2012-03-13 05:59:10

你说得对,admin_tools已经包含了jquery。除非您需要更新的版本,否则最好使用包含的版本。或者即使没有Media类,它也不加载吗?

设置中的问题是从外部主机加载jquery。我也希望这能起作用,但是,如果您查看注入文件的admin_tools中的dashboard.html模板,您会注意到它将{{ media_url }}作为每个js文件的前缀。结果是一个无效的include,如'/media/http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js'。这显然是admin_tools的问题,我会提交一份错误报告。

作为一种解决办法,您可以删除Media类并覆盖dashboard.html以包括外部文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9673628

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档