Если вы тоже столкнулись с проблемой переноса старых проектов на Django 1.4, то этот пост для вас.
Первое что довольно сильно напрягает это «Deprecation warnings» в логах:
Работает очень просто:
1. Ставим пакет.
2. Заходим в папку с django проектом.
3. Для начала запускаем скрипт с ключом «--dry-run»:
4. Внимательно смотрим что на что заменяется.
5. Обновляем файлы по-настоящему:
Теперь во всех *.html, *.txt файлах правильные «url» теги.
Первое что довольно сильно напрягает это «Deprecation warnings» в логах:
- DeprecationWarning: The syntax for the url template tag is changing. Load the url tag from the future tag library to start using the new behavior.
- The ADMIN_MEDIA_PREFIX setting has been removed; use STATIC_URL instead.
- Authentication backends without a `supports_inactive_user` attribute are deprecated. Please define it ...
К слову, в Django 1.4 этот список довольно большой.
Один вариант решения это «Забить!» и вставить в manage.py пару строчек:
import warnings
warnings.filterwarnings('ignore', category=DeprecationWarning)
Другой — это заменить в строке выше 'ignore' на 'error' и попробовать исправить все ошибки. «ADMIN_MEDIA_PREFIX» и «supports_inactive_user» решаются довольно быстро, а вот с шаблонными «url» тегами придётся повозиться:
что я и сделал. Но дабы упростить себе жизнь я написал небольшой скрипт, который делает это автоматически.
- Добавить в шаблон тег «
{% load url from future %}
». - Обновить теги ссылок например «
{% url myapp:view-name arg arg2 as the_url %}
» должно стать «{% url 'myapp:view-name' arg arg2 as the_url %}
».
1. Ставим пакет.
2. Заходим в папку с django проектом.
3. Для начала запускаем скрипт с ключом «--dry-run»:
django-make-future-url.py --dry-run.
4. Внимательно смотрим что на что заменяется.
5. Обновляем файлы по-настоящему:
django-make-future-url.py
.Теперь во всех *.html, *.txt файлах правильные «url» теги.
Комментариев нет:
Отправить комментарий