django – все сломалось после обновления

Обновив в очередной раз django из svn, при попытке зайти в админку увидел неприятное сообщение:

ImproperlyConfigured: Error while importing URLconf 'django.contrib.admin.urls': No module named urls

Немного погуглив, решение было найдено. Как оказалось позже, это только начало...

Причины

Итак, причина этой ошибки, как и многих других - в trunk наконец-то влили бранч newforms-admin. Кроме того, попутно поменяли кучу всего нужного и полезного. Итак, решаем наши проблемы.

Ошибка при доступе к админ-части.

Связана с изменением синтаксиса URLconf. Если раньше у вас в конфиге было что-то вроде

from django.conf.urls.defaults import *
urlpatterns = patterns('',
    (r'^admin/', include('django.contrib.admin.urls')),
)

то теперь нужно сделать так:

from django.conf.urls.defaults import *
from django.contrib import admin

admin.autodiscover()

urlpatterns = patterns('',
    (r'^admin/(.*)', admin.site.root),
)

Управление моделями

Казалось бы, все пучком, админка ожила, но... В новооживленной админке не оказалось моих моделей. Опять же, гугл... И тут я нашел бесценную страницу (ссылка ниже) на которой было описание всех моих мытарств. В общем, новое изменение - теперь вместо

class MyModel(models.Model):
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=30)
    slug = models.CharField(max_length=60, prepopulate_from=('first_name', 'last_name'))

    class Admin:
        pass

все, кому не чуждо django, пишут так:

class MyModel(models.Model):
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=30)
    slug = models.CharField(max_length=60)

from django.contrib import admin

admin.site.register(MyModel)

В общем, вот так вот. Django - очень динамичный фреймворк. Быстро развивается, в связи с чем и случаются иногда некоторые сюрпризы. Впрочем, аргументов в пользу django и тут хватает. trunk он на то и trunk чтобы менятся. Стабильные версии стабильны :) Ну и разработчики честно предупредили о том, что всем будут ласты т.к. джанго растет и развивается. И, наконец, главный плюс в данных обстоятельствах - тот самый супердокумент.

Запись опубликована в рубрике django с тэгами . Создать закладку наpermalink. Оставить комментарийили trackback:Trackback URL.

2 комментариев

  1. Опубликован 22 июля 2008 в 0:00 | Прямая ссылка

    Неплохая статья. Только бы поменьше грамматических ошибок. P.S. Растешь однако. Если что, знаешь как меня найти.

  2. Опубликован 22 июля 2008 в 10:59 | Прямая ссылка

    Спешил, с работы писал :)

Оставить комментарий

Ваш e-mail никогда не будет опубликован или передан третьим лицам.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>