如何启动一个Django CMS项目
我决定看看django-cms这个东西。在查看了文档后,我用下面的命令克隆了这个代码库:
git clone https://github.com/divio/django-cms.git
然后我用下面的命令安装了它:
sudo python setup.py install
我已经安装了django 1.2.3。我进入了example
目录,并运行了syncdb
,这时候创建了以下这些表:
Creating table auth_permission
Creating table auth_group_permissions
Creating table auth_group
Creating table auth_user_user_permissions
Creating table auth_user_groups
Creating table auth_user
Creating table auth_message
Creating table django_content_type
Creating table django_session
Creating table django_admin_log
Creating table django_site
Creating table sampleapp_category
Creating table sampleapp_picture
Creating table south_migrationhistory
You just installed Django's auth system, which means you don't have any superusers defined.
Would you like to create one now? (yes/no): yes...
我们可以明显看到,cms相关的表没有被创建。当我运行服务器并访问http://localhost:8000/
时,显然遇到了这个问题。
DatabaseError: no such table: cms_page
我查看了文档,确认我的版本要求是符合的,但显然我做错了什么。任何帮助都会非常感激。
3 个回答
0
一般来说,如果没有创建表格,应用程序可能会出现一些错误:尝试运行Django的命令行工具,并从应用程序中导入一个模型:
python manage.py shell
>>> from csm import models
然后检查是否会出现错误追踪信息。
希望这能帮到你。
1
你有没有在 settings.py
文件里的 INSTALLED_APPS
中添加 'cms'
呢?Django-CMS 还需要安装 menus
、publisher
和 mptt
,还有一些中间件。这里有一些很不错的文档可以看看!
7
django-cms使用South来处理数据库的迁移。通过South管理的模型不会通过syncdb
来同步到数据库。你需要使用manage.py migrate
来进行迁移。
因为你现在没有任何来自django-cms的表和数据需要迁移,所以有一个更快的解决方案,步骤如下:
- 在你的
INSTALLED_APPS
中注释掉'south'
- 运行
manage.py syncdb
(这会创建django-cms所需的所有表) - 在你的
INSTALLED_APPS
中重新启用south - 运行
manage.py migrate --fake
下次你更新django-cms时,可以运行manage.py migrate
来更新你的数据库表。