问题标签 [django-sekizai]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1459 浏览

jquery - DjangoCMS Sekizai {% render_block "js" %} 禁用 jQuery

我正在开发 DjangoCMS 应用程序,其中包括其自定义 javascript 文件,但在使用 templatetag render_block 后使用 jQuery 时出现问题。

创建一个新项目后,这里是我的项目结构:

base.html

项目/应用程序/myapp/模板/myapp/home.html

home.html中还没有内容。但是 base.html 中的内容可以正确呈现。问题出在使用 jQuery的custom.js中。

自定义.js

警报消息永远不会弹出,我收到消息"undefined is not a function"困扰我的主要问题是 jQuery 包含在我的源代码中,但我不能使用它。

源代码

显然 {% render_block "js" %} 工作正常,但我发现正因为如此,CMS.$ 将被传递为 $。因此,我补充说:

在我的顶部addtoblock

我的警报问题已解决,但 Bootstrap 仍然报告说没有 jQuery:

Bootstrap 的 JavaScript 需要 jQuery

添加 jQueryaddtoblock可以解决问题,但是我的源代码中会有两个相同的 jQuery 文件,这是不必要的。我在这里想念什么?

0 投票
1 回答
614 浏览

django - 使用 django-compressor 和来自 sekizai_tags 的 render_block

我希望能够

  1. 将所有 js/css 编译为单个缩小文件,这就是这样django-compressor做的。
  2. 能够从包含和继承的模板中添加 js/css 文件。

当我尝试:

我得到错误:Invalid block tag: 'endcompress'

但我认为主要原因来自sekizai 文档

{% render_block %}标签不得放置在模板标签块内(具有结束标签的模板标签,例如{% block %}...{% endblock %}{% if %}...{% endif %})。

我做错了什么还是有其他方法?

0 投票
3 回答
661 浏览

python - Django-cms render_to_response 不渲染到模板

我正在 django 1.5.12 中开发一个项目。安装了 django-cms 的版本。我有一个由命令“pip freeze > frozen.txt”生成的文件,其中包含我安装的下一个信息:

好吧,我的问题是我的项目中有一个应用程序,在views.py中有下一个代码:

在我的模板 project_pages.html 我有这个:

并且不呈现对模板的响应。并且在终端中没有显示任何错误。该功能正在工作,因为它正在打印数据。

如果尝试返回如下内容:

最后没有上下文(这是不同的调用)它给了我下一个错误:

在我的 settings.py 中,我有 sekizai:

所以我该怎么做?

0 投票
1 回答
154 浏览

django - `render_block` 没有在 sekizai 中渲染任何东西

我有两个文件,base.htmlhomepage.html. Homepage 扩展 base,并添加到 block extra。Base 应该在 body 内的 span 中渲染块extra,但不会。

base.html:

主页.html:

和输出:

只是 <p>,<span> 是空的。

我错过了什么真正简单的事情?

0 投票
1 回答
1300 浏览

django - 如何使用上下文将 python 对象转换为字符串?

我正在尝试以表单的方式在 django 模板中呈现对象实例。所以在视图的某个地方创建了一个对象实例:my_object = MyObject()并在上下文中传递给模板:context['my_object'] = my_object

处理模板时,会调用 的__str__()方法MyObject来创建要填充的字符串。因为MyObject它看起来像这样:

由于对象的模板想使用 sekizai 向 CSS 和 JS 块添加代码,我需要渲染上下文。有没有办法(例如,使用不同的方法)来获取这个上下文?

0 投票
1 回答
477 浏览

django - Sekizai TemplateSyntaxError 没有使用 sekizai

首先这是 Django 1.11.2 和 sekizai 0.1,这是在我的 settings.py 中:

Sekizai 上下文处理器应该包含在内,但是我仍然收到此错误:

更令人恼火的是,特定的视图、模板和子模板既不使用也不加载 sekizai 进行渲染。在这个渲染链中唯一使用 sekizai 的地方是在这个特定模板扩展的主父级的最顶部。

任何想法这是什么?我不知道如何解决这个问题。这个位置受到影响没有明显的原因,类似的没有,实际使用sekizai的位置也没有。

根据要求编辑视图:

0 投票
1 回答
231 浏览

pycharm - PyCharm Professional 中的 JavaScript 语法高亮显示

我在PyCharm的专业版中使用sekizai来控制我的 JavaScript 代码在页面中的呈现位置。

在我的 django 模板代码中,这意味着我的 JavaScript 没有包含在通常的<script>标签中,因此没有语法突出显示,例如通常我会...

相反,我有类似的东西:

有没有快速解决这个问题的方法?标签在我的基本模板中<script>存在一次,我试图避免在其中移动标签{% addtoblock %}

0 投票
1 回答
128 浏览

django - 如何在表单小部件模板中使用 sekizai 的 addtoblock 标签

我正在编写一个具有自定义小部件的自定义表单字段。小部件需要一些静态资产。它的模板如下所示:

但是,这不起作用。我得到:You must enable the 'sekizai.context_processors.sekizai' template context processor or use 'sekizai.context.SekizaiContext' to render your templates.

我猜这是因为表单(和小部件)无法访问请求对象?!有没有解决的办法?

我在 sekizai中发现提到 SekizaiContext 为...

在没有可用请求的地方使用替代上下文而不是 RequestContext。

...但我无法弄清楚我会如何做到这一点。

请注意,我不想开始传递请求。这不是一个可接受的解决方案,因为我的自定义字段是可重用的;它应该以任何形式工作而无需进一步修改。

更新

实际上,在发布了我自己的问题的答案并且......再想一想之后,我意识到这个答案 - 使用 Media 类 - 并没有真正解决这个问题。毕竟,Media 类的缺点是首先需要 sekizai 的原因。

使用 Media 类意味着:

然后,添加{{ form.media }}到包含表单的模板。因此,发布此问题的初衷不会得到解决。即在小部件模板中使用addtoblock,以便可以按原样使用该字段,而无需对其他模板进行进一步修改。

此外,如果{{ form.media }}使用了 html 标签,它将在表单之后立即呈现,除非我像这样包装它:{% addtoblock "css" %}{{ form.media }}{% endaddtoblock %}. 然后将 css 和 js 都添加到同一个位置(而通常需要在头部添加 css 链接标签,在正文后添加 js 脚本标签)。

如果有人有在无法访问请求对象的模板中使用 sekizai 的 addtoblock 的解决方案,仍然欢迎!

更新 2

我能够使用 addtoblock 并避免覆盖我的 widgets.Widget 子类中的 get_context 方法的上下文错误,如下所示:

但是,资产仍然没有渲染......

0 投票
1 回答
54 浏览

python - 获取错误 ModuleNotFoundError at / No module named 'sekizai'

尝试安装模块 django-sezikai 后,我在生产中的浏览器中遇到此错误。


蟒蛇版本3.7.9;django 2.1.15 版;操作系统:CentOS


从浏览器截取

我从 settings.py 中删除了模块

0 投票
0 回答
35 浏览

python - 当我的 django web 应用程序中的 debug = false 时,sekizai for adsense 出错

我正在尝试将 google adsense 添加到我的 django 网络应用程序中,但由于我的网站上没有内容,我无法激活我的帐户。(啊,这一刻我只放了谷歌在我创建帐户时给我的脚本标签)。

所以我尝试将 django 广告和 sekizai 添加到我的应用程序中,以使 adsense 能够在其上运行。

我的问题是,当我的调试设置为真并且我尝试运行服务器时,一切正常,但是当我将其更改为 False 并尝试运行服务器时,我遇到了 500 错误,我不明白为什么......

在 sekizai 设置中我可能不太了解的一件事是最后一步:

“对于 1.10 之后的 Django 版本,将 sekizai.context_processors.sekizai 添加到您的 TEMPLATES['OPTIONS']['context_processors'] 设置中,并在渲染模板时使用 django.template.RequestContext。”

我应该把“django.template.RequestContext”放在哪里?这是我必须解决我的问题的唯一方法。

我给你留下了我的 settings.py 的几个部分,

感谢您的帮助和回答

设置.py: