Свежий Django Server, добавленный Zinnia в проект согласно официальным документам, не работает. Много деталей внутри

Сервер - это виртуальная машина 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.

URL-адреса Zinnia (/weblog/ и /comments/) выдают 404 ошибки, которые указывают на то, что URL-адреса Zinnia, которые определенно содержатся в urls.py проекта, не делают его из 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
  • добавлены теги, mptt, zinnia к установленным приложениям в settings.py
  • также добавил TEMPLATE_CONTEXT_PROCESSORS в settings.py

Я также немного смущен тем фактом, что в каталоге проекта нет редактируемого кода Python - Zinnia работает полностью как черный ящик? О, я также удостоверился, что все требования были установлены, и я вставил файл examples.txt, но сайт подумал, что это код, и не позволил мне опубликовать его. В любом случае, все, что перечислено на странице установки Zinnia, там.

1 ответ

Убедитесь, что у вас есть все необходимые установленные приложения. Обратите внимание, что есть несколько 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:

С Джанго 1.6 django.contrib.comments это отдельный проект: django_comments,

Вы должны установить его как в этом кратком руководстве по установке и добавить 'django_comments' в INSTALLED_APPS (не 'django.contrib.comments').

Другие вопросы по тегам