我是 django 的新手,目前我正在学习并尝试使用 django-cms 构建一个基本网站。以下是我的项目文件夹结构和代码文件
project_folder
manage.py
main_folder
static
css
new-styles.css
js
new-styles.js
templates
base.html
home.html
media
pic_1.gif
.....
settings.py
urls.py
.......
Run Code Online (Sandbox Code Playgroud)
设置.py
import os
PROJECT_DIR = os.path.abspath(os.path.dirname(__file__))
DEBUG = True
MEDIA_ROOT = os.path.join(PROJECT_DIR,'media')
MEDIA_URL = '/media/'
STATIC_ROOT = os.path.join(PROJECT_DIR,'static')
STATIC_URL = '/static/'
TEMPLATE_DIRS = (os.path.join(PROJECT_DIR,'templates'))
TEMPLATE_CONTEXT_PROCESSORS = (
'django.contrib.auth.context_processors.auth',
'django.core.context_processors.i18n',
'django.core.context_processors.request',
'django.core.context_processors.media',
'django.core.context_processors.static',
'django.core.context_processors.debug',
'django.contrib.messages.context_processors.messages',
'cms.context_processors.media',
'sekizai.context_processors.sekizai',
)
......
.......
Run Code Online (Sandbox Code Playgroud)
urls.py
from django.conf.urls import patterns, include, url
from django.conf import settings
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
url(r'^$', ...........),
) …Run Code Online (Sandbox Code Playgroud) 我需要将不同的Django项目与Django CMS放在同一个域下,例如:
通常我对每个域/项目使用 virtualenv 和 mod_wsgi 。我将需要不同的数据库、媒体文件和 Django 版本。
此处不能选择将项目放在不同的子域下。
可以做吗?我应该如何设置服务器?有什么我应该知道的注意事项吗?
我一直在将 Django CMS 集成到一个已经投入生产一年多的 Django 项目中。作为我的开发活动的一部分,我已将那些在添加 Django CMS 之前曾经是静态内容的页面转换为 CMS 页面。我的开发数据库现在包含我想要复制到实时站点的页面,而不是要求项目人员在实时站点上重新创建这些页面。
我搜索了 Django CMS 文档,但没有找到此命令。我还搜索了 github 上的问题、SO 上的问题和 Django CMS google 组。我发现的唯一一件事是3 年前的讨论。讨论中提到使用dumpdata转储cms模型。我试过了。转储包含有关页面的信息(例如,谁创建了页面以及何时创建),但它不包含页面的内容。
实时站点具有必须保留的数据。因此,我无法在开发站点上执行数据库级转储并在实时站点上进行还原,因为这会擦除或覆盖实时站点上已存在的数据。
我正在使用 Django 1.7 和 Django CMS 3.1.0。
我试图将我的django-cms项目从django-cms 3.1.0升级到3.1.2并将django 1.7.1升级到django 1.8.3,但是当我python manage.py runserver在终端中运行时出现此错误:
File "/home/testacc/projects/test/env/local/lib/python2.7/site-packages/cms/utils/setup.py", line 33, in validate_settings
raise ImproperlyConfigured("django CMS requires django.template.context_processors.request in "
django.core.exceptions.ImproperlyConfigured: django CMS requires django.template.context_processors.request in 'django.template.backends.django.DjangoTemplates' context processors.
我经常在 django 模板中使用 django-cms 做这样的事情:
{% load cms_tags %}
<a href="{% page_url 'imprint' %}">Imprint</a>
Run Code Online (Sandbox Code Playgroud)
在生产环境中,此操作会默默失败,并且 href 属性为空。在开发中,我被迫插入 id 为“imprint”的页面,否则我会收到“DoesNotExist”异常。
我该如何改善这种情况?也许我正在寻找类似的东西
{% if 'imprint'|cms_page_exists %}
...the link and stuff...
Run Code Online (Sandbox Code Playgroud)
对于这个(并不罕见)用例,是否有已知的最佳实践?还是大家都是按照第一个所示的方式使用的?
我是 django 和 django-cms 的新手。我阅读了官方文档并试图在互联网上找到任何其他信息,这些信息可以指导我在 django cms 中制作下拉菜单。但不幸的是,对我来说,官方文档真的很原始(我根本不明白菜单是什么),互联网上没有什么足够明智的。
请向我解释或提供有关此主题的分步指南。
此时菜单正在工作,我唯一拥有的代码是其中的一对<ul>和 this {% show_menu 0 100 100 100 %}。
我已经发现无法从Admin丢弃 django-cms 中未发布的更改。因此,我正在寻找一种通过 ORM 从 shell修复此问题的方法。
我看到有一个Page模型,每个页面有 2 个实例,一个public和一个Draft。是否可以通过将某些特定数据从公共实例复制到草稿实例来放弃这些更改?谢谢。
当我禁用
cms.middleware.multilingual.MultilingualURLMiddleware
我'WSGIRequest' object has no attribute 'LANGUAGE_CODE'
在编辑页面或使用{% show_menu_below_id %}标记时渲染时遇到异常。
我不需要lang前缀,请帮助我禁用此东西。
安装后,有些麻烦,django-cms运行virtualenv.我可以加载索引页面以及管理页面.但是,在索引页面上,我在底部看到以下文本
如果您没有在此行的末尾看到django CMS徽标,请确保将static/cms文件夹链接到静态文件:这里应该是徽标
徽标缺失.加载管理页面加载纯黑白HTML未修饰的CSS和页面的其他静态组件.
我的access.log在加载www.mysite.com时显示以下内容
..."GET / HTTP/1.1" 200 4214 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:14.0) Gecko/20100101 Firefox/14.0.1"
..."GET /static/cms/images/pony.jpg HTTP/1.1" 404 526 "http://www.mysite.com/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:14.0) Gecko/20100101 Firefox/14.0.1"
..."GET /static/cms/images/logo.jpg HTTP/1.1" 404 527 "http://www.mysite.com/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:14.0) Gecko/20100101 Firefox/14.0.1"
Run Code Online (Sandbox Code Playgroud)
加载访问日志时会看到类似的错误.并不是说在生成网站时没有创建"静态"目录.
我的问题是:我只是将/usr/local/pythonenv/django_cms_venv/lib/python2.7/site-packages/cms/static/的内容复制到settings.py中定义的STATIC_ROOT中吗?
我的跟进会是,为什么不自动完成?
我按照说明在我的mac上安装Django CMS.当我运行"manage.py cms check"时,一切都很好,除了它说找不到template_1.html.当我进入管理员创建页面时,模板位于模板下拉列表中.当我尝试保存页面时,它会在"/ admin/cms/page/add /"中给出"TemplateDoesNotExist".
也许这是值得注意的,我在此错误之前遇到了问题.我无法打开管理员,甚至无法在浏览器中显示主页面.搜索堆栈溢出后,我发现了同样的问题.我将url模式从"urlpatterns = i18n_patterns"更改为标准.那很有效.现在我有这个问题.任何援助将不胜感激.谢谢.
如果需要,链接到Traceback:http: //dpaste.com/hold/1430437/
django-cms ×10
django ×6
python ×3
css ×1
deployment ×1
django-wsgi ×1
dropdown ×1
virtualenv ×1