4

服务器是我今天设置的虚拟 Ubuntu 机器,根据这些说明/注释(我在偏离教程的地方做了注释):

https://www.evernote.com/shard/s50/sh/5c4f5ed1-bdb0-40c1-b9de-39fae702d709/d906be4f255c36241a3b76bf6fc7e7b7

这让 Django “成功了!” 本地网络上服务器地址的页面。然后我按照官方网站上的说明进行操作(我不能发布太多链接,我的声誉太低),当我尝试执行 ./manage.py syncdb 时,出现以下错误:

CommandError: One or more models did not validate:
zinnia.entry: 'sites' has an m2m relation with model <class 'django.contrib.sites.models.Site'>, which has either not been installed or is abstract.

Zinnia url(/weblog/ 和 /comments/)产生 404 错误,表明肯定在项目的 urls.py 中的 Zinnia url 没有urls.py中生成。我怀疑syncdb错误与此有关:

Using the URLconf defined in homepage.urls, Django tried these URL patterns, in this order:
    ^admin/
The current URL, weblog/, didn't match any of these.

明确地说,从一个工作的 Django 服务器开始,我按照指示做了以下操作(我重申我已经采取的步骤,以便完全清楚):

  • $ pip install django-blog-zinnia
  • 在 settings.py 中已安装的应用程序中添加了 'tagging'、'mptt'、'zinnia'
  • 还将 TEMPLATE_CONTEXT_PROCESSORS 添加到 settings.py

对于项目目录中没有可编辑的 python 代码这一事实,我也有点困惑——Zinnia 是否完全像黑匣子一样运行?哦,我还确定了所有的需求都安装了,我粘贴了 requirements.txt,但是网站认为这是代码,不让我发布它。无论如何,Zinnia 安装页面上列出的所有内容都在其中。

4

1 回答 1

5

确保您已安装所有必需的应用程序。请注意,有一些django.contrib应用程序是必需的,包括django.contrib.sites,您的错误消息表明您错过了这些应用程序。

文档的相关部分在这里

编辑:

INSTALLED_APPS至少需要以下内容:

 INSTALLED_APPS = (
  'django.contrib.auth',
  'django.contrib.admin',
  'django.contrib.sites', # Note this one is not included by default
  'django.contrib.comments', # Note this one is not included by default
  'django.contrib.sessions',
  'django.contrib.messages',
  'django.contrib.staticfiles',
  'django.contrib.contenttypes',
  'tagging',
  'mptt',
  'zinnia',
)

此外,您可能需要添加一个SITE_ID设置。

SITE_ID = 1

站点框架设置在这里

编辑2:

由于 Django 1.6django.contrib.comments是一个单独的项目:django_comments.

您必须按照此快速安装指南安装它并添加'django_comments'INSTALLED_APPS不是'django.contrib.comments')。

于 2014-04-22T21:54:19.683 回答