有人可以提供我自定义django-cms菜单模板的样本吗?
我试图menu.html在cms包文件夹中查找默认值,但找不到任何内容.
谢谢.
据说使用django-cms时服务器403/404/500错误页面是一项微不足道的任务.按照旧论坛帖子上的说明创建:
from cms.views import details
def custom_404(request):
response = details(request, 'page-not-found')
response.status_code = 404
return response
...
Run Code Online (Sandbox Code Playgroud)
Urls.py有一些像这样的行:
handler404 = 'error_pages.views.custom_404'
...
Run Code Online (Sandbox Code Playgroud)
来自traceback django cms找不到404页面:
File "/home/username/.virtualenvs/venv/lib/python2.7/site-packages/cms/views.py", line 22, in _handle_no_page
raise Http404('CMS: Page not found for "%s"' % slug)
Http404: CMS: Page not found for "page-not-found"
Run Code Online (Sandbox Code Playgroud)
显然在django-cms中添加了slug所需的自定义页面:'page-not-found'.我错过了一些明显的东西吗 在生产服务器上运行debug=False.运行django-cms 2.4.2(编辑)
也许用硬编码的样式表来提供简单的错误消息会更好吗?
我有兴趣将django-cms用于内容管理,将django oscar用于电子商务.
有人可以给我一些方向,最好是已经成功结合两者的人:
[A]该结构应该是一个基础奥斯卡站点,修改奥斯卡模板以插入必要的占位符以允许cms等...,
要么
[B]结构应该是基础django-cms站点,奥斯卡是由插件等处理的......
我的直觉是它应该是[A],但如果我错了,请纠正我.
任何其他建议将不胜感激,因为网上很少,我写信给奥斯卡的作者没有回应.我知道这个链接,它不涉及实现,只比较兼容性.
例如,假设我在本地处理FAQ页面.我创建了我需要的任何插件/模板等.然后,在本地,我继续将插件添加到页面,调试,修改任何内容.现在是时候将它部署到生产中了.
我再次重做所有工作,复制/粘贴内容并重建FAQ页面,还是有另一种方法?我想到的事情:
创建表示结构/内容的数据迁移
将生产数据库同步到dev db,进行更改并在停机时间窗口内将其全部推回.
在Django CMS社区中是否有任何其他解决方案来处理这类事情?
数据迁移似乎是最好的方法,但我想我会确定我没有遗漏任何东西.
我正在使用Django CMS 2.1.0.beta3并遇到问题.我需要访问变量中的所有页面,以便我可以使用for循环遍历它们并创建导航菜单.django cms提供的show_menu功能对我正在做的事情不起作用.
我需要一个包含所有页面的查询集,所以我可以做类似以下的事情:
{% for page in cms_pages %}
{{ page.title }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
有谁知道如何访问所有已发布的页面对象,如所有页面上的那样?
我正在开发一个DjangoCMS插件,它包含一个javascript文件.插件的Javascript依赖于网站其他部分所使用的库.所以,这是我现在所拥有的概念部分:
Basetemplate.html
{% load cms_tags sekizai_tags and_a_bunch_of_other_stuff %}
<html>
...
<head>
{% render_block "css" %}
</head>
<body>
...
{% addtoblock "js" %}[jquery]{% endaddtoblock %}
{% addtoblock "js" %}[google api, data, more cool stuff like jqplot.]{%endaddtoblock%}
{% addtoblock "js" %}[my site's library js.] {% endaddtoblock %}
{% render_block "js" %}
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
现在在为我的DjangoCMS自定义插件加载的模板中,
great_calendar_plugin_template.html
{% load sekizai_tags and_a_couple_other_things %}
{% addtoblock "js" %}[plugin javascript file dependency]{%endaddtoblock %}
{% addtoblock "js" %}[plugin javascript file]{% endaddtoblock %}
....
Run Code Online (Sandbox Code Playgroud)
因此,无论我做什么,插件javascript文件都被放置在JQuery和所有其他依赖项之上的最终HTML中,而不是放在它们所属的下面.我在这里错过了什么?
谢谢.
我目前正在开发一个使用django-registration和Django CMS的项目.当显示实现django-registration的页面时,我的页面标题不会呈现.
目前有<title>{% page_attribute page_title %}</title>base.html,我的所有模板都继承自.
在不使用django-registration的页面中,标题显示得很好,但是django-registration显示为 <title></title>
我的页面都在CMS中创建,其他所有内容都正确呈现.如果我在模板中明确设置标题,标题将呈现,但我宁愿在CMS中设置它.
registration_form.html的相关部分如下:
{% extends "base.html" %}
{% load cms_tags %}
{% load i18n %}
{% block "html_headers" %}
<!-- conditional stuff here -->
<link href="/media/css/forms.css" rel="stylesheet" type="text/css" />
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
谢谢!
我用:
我想检查我的占位符是否为空.
<div>
{% placeholder "my_placeholder" or %}
{% endplaceholder %}
</div>
Run Code Online (Sandbox Code Playgroud)
如果占位符为空,我不希望创建占位符之间的html.
{% if placeholder "my_placeholder" %}
<div>
{% placeholder "my_placeholder" or %}
{% endplaceholder %}
</div>
{% endif %}
Run Code Online (Sandbox Code Playgroud) 我正在尝试安装特定版本的django-cms,从而执行pip install django-cms==3.0.5.这给了我错误No matching distribution found for django-mptt==0.5.2,==0.6,==0.6.1 (from django-cms==3.0.5).事实上,在github上,setup.py文件指定了要求django-mptt==0.5.2,==0.6,==0.6.1.
该规范指出,逗号作为逻辑"与"操作,但显然没有版本可以在同一时间是0.5.2,0.6和0.6.1,因此要求不匹配.只需通过pip install django-mptt==0.5.2工作安装其中一个版本没有问题,但仍然有关于django-cms == 3.0.5的相同错误.
任何人都可以阐明这一点吗?
使用djangocms发布页面更改时遇到错误。
当我跑时tail -f /var/log/apache2/error.log,它返回:
treebeard.exceptions.NodeAlreadySaved: Attempted to add a tree node that is already in the database, referer: http://47.95.254.172/?edit
Run Code Online (Sandbox Code Playgroud)
当我允许 settings.py DEBUG= True 并单击“发布页面更改”按钮时:
NodeAlreadySaved at /admin/cms/page/1/en/publish/
Attempted to add a tree node that is already in the database
Request Method: POST
Request URL: http://47.95.254.172/admin/cms/page/1/en/publish/
Django Version: 3.1.7
Exception Type: NodeAlreadySaved
Exception Value: Attempted to add a tree node that is already in the database
Exception Location: /root/env1/lib/python3.8/site-packages/treebeard/mp_tree.py, line 326, in process
Python Executable: /root/env1//bin/python
Python Version: 3.8.5 …Run Code Online (Sandbox Code Playgroud) django-cms ×10
django ×7
python ×5
apache2.4 ×1
django-oscar ×1
html ×1
mod-wsgi ×1
pip ×1
python-2.7 ×1