如何启动一个Django CMS项目

3 投票
3 回答
4236 浏览
提问于 2025-04-16 08:30

我决定看看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 还需要安装 menuspublishermptt,还有一些中间件。这里有一些很不错的文档可以看看!

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来更新你的数据库表。

撰写回答