разработка мобильных приложений, веб-сервисов и корпоративных систем
ru en
+7 (812) 324-27-24, +7 (495) 641-87-24
Заказать звонок

jQuery в администрировании

Перевод публикации jQuery in the admin с DjangoAdvent

Обновления r12297 произвели настоящую сенсацию: в директории django/contrib/admin/media/js появился новый файл под названием jquery.js. В администрировании Django это изменение являет собой начало новой эры, эры модных функций, красивых виджетов и улучшенного юзабилити.

Аргументы в пользу jQuery

Несмотря на то, что интеграция библиотеки jQuery в администрирование обсуждалась и ранее, серьёзно её рассмотрели только этим летом в связи с предложением участника GSoC об улучшении интерфейса администрирования, предполагающее некоторые мощные интерфейсные функции, реализовать которые без использования фреймворка было бы трудно.

Необходимость Javascript фреймворка в администрировании трудно недооценить. Сырой Javascript в любом приличном по размеру проекте постепенно приближается к объёму и сложности фреймворка. Это настоящее минное поле, где вы имеете дело с кросс-браузерными проблемами, «заплатками» и нормализацией; фреймворк снимает эти трудности, позволяя разработчикам сосредоточиться на создании классных штук. Мы всё время движемся вперёд, и сегодня просто не существует достаточных оснований, чтобы писать Javascript прямо в DOM API, когда вместо этого можно добавить полезную функциональность (с меньшим количеством багов).

Также нетрудно понять, почему jQuery является наиболее предпочтительным фреймворком: эта библиотека одержала уверенную победу в войне JS фреймворков. jQuery используют почти 30% сайтов, отслеживаемых builtwith.com. Выбор другой библиотеки будет свидетельствовать о менее компетентных разработчиках, менее доступном коде и небольшом сообществе поддержки.

Вовсе не значит, что Django продвигает jQuery

В сообществе наблюдается некоторое беспокойство по поводу того, что внедрение jQuery является продвижением одного фреймворка другим, а это совсем не так.

Собственно Django остаётся независимым от выбора инструментария. Администрирование является дополнительным приложением, созданным для конечных пользователей, а не для разработчиков. Инструментарий администрирования не влияет на контент-менеджера, при этом разработчики также не ограничиваются им.

Если вы модифицируете администрирование Django, jQuery абсолютно не будет вам мешать. Например, чтобы функция $ не занимала пространство имён, администрирование использует jQuery.noConflict(), следовательно, вы можете использовать $() из Prototype в ваших личных виджетах без всяких конфликтов. Также, jQuery загружается только на тех страницах, где есть виджеты, которые её используют.

Ваши приложения, как и раньше, могут использовать то, что вам кажется более подходящим. Что касается администрирования Django, то тут даже более разумно включить проверенный, надёжный фреймворк, чем добавлять недокументированные ненадёжные Javascript.

Теперь администрирование Django будет развиваться намного быстрее

Внешний интерфейс администрирования немного застоялся, поэтому ему необходимы передовые мощные возможности, а именно jQuery, новый «Царь дизайна», и общий фокус в сообществе на улучшенной юзабилити.

Версия Django 1.2 в основном сфокусирована на подготовке фундамента для будущих усовершенствований интерфейса администрирования, при этом наиболее заметные изменения начнут появляться только в Django 1.3 и последующих версиях. Тем не менее, некоторые вещи действительно удались.

Новые функции

Одна из первых функций jQuery в администрировании – это динамическое добавление новых строк. Чтобы ознакомиться с этой возможностью, посмотрите следующий ролик:

Многие разработанные функции не попали в Django 1.2, например, реорганизация строк для моделей с полем заказов путём перетаскивания, а также виджет автоматического заполнения для Foreign Key и связей M2M вместо выпадающего меню (или raw_id_fields). Наиболее вероятно, что эти и другие возможности появятся в Django 1.3.

Для пользователей администрирования Django настало замечательное время. Многие шикарные возможности уже доступны в версии 1.2, а на момент выхода 1.3 этих возможностей станет ещё больше. Во многом благодаря jQuery!

Добавить комментарий

Комментарии

  • Andrew 12 месяцев назад

    у вас в rss ленте http://www.e-legion.ru/blog/feeds/posts/all/ сслыки на http://www.e-legion.com , поправьте плиз

  • Анатолий Ларин 12 месяцев назад

    Андрей, спасибо.

    Внесли в список задач.