До его выхода кто-то дальновидно заранее начинал работать с пре-релиз версией и портировать на нее свои существующие проекты.
Те, кто предпочел использовать в повседневновсти стабильную версию 1.3 теперь либо продолжают ее использовать, либо потихоньку (ведь никто не гонит) , переводят проекты на 1.4.
При этом у каждого НЕИЗБЕЖНО возникнут большие и малые трудности..
Дело в том, что весь зоопарк сторонних django-приложений еще не успел актуализироваться вслед за измененями в django, которые появились в версии 1.4
В этом и быть может последующих постах буду более менее существенные моменты отражать - быть может этот опыт пригодиться кому-то быстрее решить проблему миграции..
1. django-diario - неплохое приложение для организаци блога. В нем я наткнулся на ошибку импорта в 13-й строке файла diario/feeds/entries.py:
from django.contrib.syndication.feeds import Feed
ImportError: No module named feeds
Действительно, в версии 1.4 нет файла feeds - вместо него используется views - видимо так правильнее ) Имена сущностей те же.. то есть, теперь надо
from django.contrib.syndication.views import Feed
Проверил - в текущей версии diario проблема не решена , поэтому пришлось пока "ручками" поправить.
2. еще одно замечание про diario
Из-за того же рефакторинга django.contrib.syndication изменился и способ работы с фидами, которые предоставляет diario.
Если раньше вы подключали url-ы для фидов примерно так:
from diario.feeds.entries import RssEntriesFeed, AtomEntriesFeed
entries_feeds = {
'rss': RssEntriesFeed,
'atom': AtomEntriesFeed,
}
#...
urlpatterns = patterns(
url(r'^pub/(?P(rss|atom))/$', 'django.contrib.syndication.views.feed', {'feed_dict':
entries_feeds}),
)
то теперь это надо делать так:
from diario.feeds.entries import RssEntriesFeed, AtomEntriesFeed
#...
urlpatterns = patterns(
url(r'^pub/(?Prss)/$', RssEntriesFeed()),
url(r'^pub/(?Patom)/$', AtomEntriesFeed()),
)
Удачи!
Спасибо. Сохраню и в свои заметки.
ОтветитьУдалить