django-cms, mptt и get_ancestors

Почему-то поисковики плохо выводят на решение проблемы с django-cms, когда, скажем, после обновления, попытка выполнить любую команду через manage.py приводит к ошибке:

File "/usr/local/lib/python2.6/dist-packages/publisher/mptt_support.py", line 142, in install_mptt 
    attrs[method_name] = getattr(mptt_models, method_name) 
AttributeError: 'module' object has no attribute 'get_ancestors'

Решение на самом деле простое: в django-cms есть уже встроенный модуль mptt. Но, если ставить через pip, то он устанавливает django-mptt, который естественно оказывается приоритетнее и несовместимым. Выход один: удалять django-mptt сразу после установки. Ну и использовать virtualenv, если есть необходимость в свежей версии django-mptt.

Дополнение: в django-cms версии 2.2 обещают прекратить эту порочную практику и нормально работать с django-mptt. Так-что ждём 🙂

4 thoughts on “django-cms, mptt и get_ancestors”

  1. спасибо, дружище! а то завис я с этой ошибкой 🙂
    а нет у тебя случайно какого-нибудь простого примера шаблонов для django-cms? пока не очень ориентируюсь что тут к чему…

      1. я правильно понимаю, что стили и картинки сайта должны находиться в папке проекта? у меня почему-то меню django-вскоке не отображается нормально… то есть простым списком , а стили и картинки не цепляются 🙁 это видимо где-то в настройках надо править?

        1. Посмотри настройки MEDIA_URL и MEDIA_PATH в settings.py и используй в шаблонах значение MEDIA_URL в путях.

Leave a Reply