django-cms 和 jQuery

Posted

技术标签:

【中文标题】django-cms 和 jQuery【英文标题】:django-cms and jQuery 【发布时间】:2011-05-10 05:23:57 【问题描述】:

我有一个使用 django-cms 运行得非常愉快的 django 站点,但现在我想使用 jQuery 包含一些我自己的花哨的 javascript。我对 django 比较陌生,所以我的问题可能源于此。

Django-cms 使用 jQuery 本身,所以如果我将 jquery 添加到标题中 - 事情就会中断,这并不奇怪。如何在不影响 django-cms 的情况下添加自己的 jQuery?

目前我的 javascript 文件存储在我在项目 settings.py 中定义的媒体根目录中,如前所述,我在标题中引用它们。

当我读到这篇文章时,这似乎是一个愚蠢的问题,但我仍然感到困惑。

编辑::一些代码

我定义了一个媒体根目录:

MEDIA_ROOT = os.path.join(PROJECT_PATH, 'media')

在我的基本模板中,标题包括

<script src="/media/javascript/jquery.js" type="text/javascript"></script>
<script src="/media/javascript/application.js" type="text/javascript"></script>

application.js 中的 Javascript 可以工作,但是当 django-cms 启动时它会中断。例如,尝试将插件添加到占位符会导致:

Uncaught TypeError: Property 'type' of object function ( selector, context ) 
        // The jQuery object is actually just the init constructor 'enhanced'
        return new jQuery.fn.init( selector, context );
     is not a function

我认为这是因为两个 jQuery 相互冲突

::另一个编辑:: 我可能应该补充一点,我使用 django 来托管静态文件只是因为它仍在开发中......

【问题讨论】:

需要澄清:您是否希望使用与 Django-CMS 附带的不同版本的 jQuery 库,还是只想包含用 jQuery 编写的自定义脚本? 我不介意使用捆绑的 jQuery - 但据我所知,它仅在 django-cms 管理栏等存在时加载。我确实需要包含一些额外的 jquery ui 元素和至少一个插件。 Django 不应与您的 jquery 冲突。您是否尝试过创建静态页面并添加 jquery 代码进行测试?如果您想在此处粘贴给您带来问题的代码,您可能会得到更具体的回复。 这个线程有什么帮助吗? old.nabble.com/… 我在 application.js 中编写的 javascript,例如,如果我有 alert("It Works!!"),它会像 jQuery 特定的东西一样愉快地运行。但它破坏了 django-cms 的东西 - 我应该更具体地说明实际破坏的内容。 【参考方案1】:

好吧,链接 django-cms 捆绑的 jQuery 确实可以解决所有问题...

唉,它使用的是 1.3.2 版本,但我想我会处理这个问题,而不是现在尝试升级 django-cms。

【讨论】:

【参考方案2】:

一个简单的解决方案:将您的 JQuery 库保留在页眉中,并将所有其他 JS 放在页面的底部,就在 &lt;/body&gt; 之前。在这种情况下,在管理员模式下,您的 jQuery 库将被管理员的副本覆盖,然后您的所有代码都将被添加回其中。

【讨论】:

以上是关于django-cms 和 jQuery的主要内容,如果未能解决你的问题,请参考以下文章

无法导入名称六 Django-CMS

django-cms:错误的当前页面语言

将现有的 django 应用程序与 django-cms 集成

如何在 django-cms 中使用表单?

选择起始页 django-cms

Django-cms 菜单模板标签问题