问题标签 [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.
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 文件,这是不必要的。我在这里想念什么?
django - 使用 django-compressor 和来自 sekizai_tags 的 render_block
我希望能够
- 将所有 js/css 编译为单个缩小文件,这就是这样
django-compressor
做的。 - 能够从包含和继承的模板中添加 js/css 文件。
当我尝试:
我得到错误:Invalid block tag: 'endcompress'
但我认为主要原因来自sekizai 文档:
{% render_block %}
标签不得放置在模板标签块内(具有结束标签的模板标签,例如{% block %}...{% endblock %}
或{% if %}...{% endif %}
)。
我做错了什么还是有其他方法?
python - Django-cms render_to_response 不渲染到模板
我正在 django 1.5.12 中开发一个项目。安装了 django-cms 的版本。我有一个由命令“pip freeze > frozen.txt”生成的文件,其中包含我安装的下一个信息:
好吧,我的问题是我的项目中有一个应用程序,在views.py中有下一个代码:
在我的模板 project_pages.html 我有这个:
并且不呈现对模板的响应。并且在终端中没有显示任何错误。该功能正在工作,因为它正在打印数据。
如果尝试返回如下内容:
最后没有上下文(这是不同的调用)它给了我下一个错误:
在我的 settings.py 中,我有 sekizai:
所以我该怎么做?
django - 如何使用上下文将 python 对象转换为字符串?
我正在尝试以表单的方式在 django 模板中呈现对象实例。所以在视图的某个地方创建了一个对象实例:my_object = MyObject()
并在上下文中传递给模板:context['my_object'] = my_object
。
处理模板时,会调用 的__str__()
方法MyObject
来创建要填充的字符串。因为MyObject
它看起来像这样:
由于对象的模板想使用 sekizai 向 CSS 和 JS 块添加代码,我需要渲染上下文。有没有办法(例如,使用不同的方法)来获取这个上下文?
django - Sekizai TemplateSyntaxError 没有使用 sekizai
首先这是 Django 1.11.2 和 sekizai 0.1,这是在我的 settings.py 中:
Sekizai 上下文处理器应该包含在内,但是我仍然收到此错误:
更令人恼火的是,特定的视图、模板和子模板既不使用也不加载 sekizai 进行渲染。在这个渲染链中唯一使用 sekizai 的地方是在这个特定模板扩展的主父级的最顶部。
任何想法这是什么?我不知道如何解决这个问题。这个位置受到影响没有明显的原因,类似的没有,实际使用sekizai的位置也没有。
根据要求编辑视图:
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 方法的上下文错误,如下所示:
但是,资产仍然没有渲染......
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: