REST-фреймворк Django 3.3

Выпуск версии 3.3 является завершающим в серии работ, финансируемых с помощью Kickstarter. Мы хотели бы сказать огромное спасибо всем нашим замечательным спонсорам и сторонникам.

Объем работы, проделанной в результате финансирования, огромен. Мы добавили огромное количество новых функций, решили почти 2 000 проблем, переработали и доработали значительные части проекта.

Для того чтобы продолжать развивать REST framework, мы вскоре объявим о новых планах финансирования. Следите за @_tomchristie, чтобы быть в курсе этих объявлений, и будьте в числе первых подписавшихся.

Мы твердо убеждены, что совместная разработка программного обеспечения дает выдающиеся результаты при относительно небольших инвестициях на одного человека. Если вы или ваша компания используете REST framework в коммерческих целях, то мы настоятельно просим вас принять участие в этой последней акции финансирования и помочь нам продолжить создание все более совершенного и профессионального продукта.


Примечания к выпуску

Значительные новые функции в версии 3.3 включают:

  • Фильтры, представленные в виде элементов управления HTML в просматриваемом API.

  • A :doc:`forms API <../topics/html-and-forms>`** , позволяющий отображать сериализаторы в виде HTML-форм.

  • Поддержка Django 1.9.

  • A ** ``JSONField:doc:` serializer field <../api-guide/fields#jsonfield>`** , что соответствует полю модели Postgres JSONField в Django 1.9.

  • Поддержка API с возможностью просмотра :doc:`via AJAX <https://github.com/encode/ajax-form>`** , а не перегрузка запросов на стороне сервера.

Filter Controls

Пример новых элементов управления фильтрами.


Поддерживаемые версии

В этом выпуске прекращена поддержка Django 1.5 и 1.6. Теперь требуется Django 1.7, 1.8 или 1.9.

Это приводит наши поддерживаемые версии в соответствие с Django currently supported versions.

Амортизация

Поддержка AJAX для просматриваемого API означает, что в классе request есть ряд внутренних очисток. Для подавляющего большинства разработчиков это должно оставаться прозрачным:

  • Для поддержки форм PUT и DELETE , или для поддержки типов содержимого формы, таких как JSON, теперь следует использовать библиотеку AJAX forms javascript. Это заменяет предыдущую «перегрузку методов и типов содержимого», которая требовала значительного усложнения класса запроса.

  • Параметр запроса accept больше не поддерживается классом согласования содержимого по умолчанию. Если он вам необходим, то вам нужно use a custom content negotiation class.

  • Пользовательский заголовок HTTP_X_HTTP_METHOD_OVERRIDE больше не поддерживается по умолчанию. Если он вам необходим, то вам нужно use custom middleware.

Следующие атрибуты и настройки представления пагинации были перенесены в атрибуты класса пагинации начиная с версии 3.1. Их использование ранее было устаревшим, а теперь полностью удалено в соответствии с политикой устаревания.

  • view.paginate_by - Вместо этого используйте paginator.page_size.

  • view.page_query_param - Вместо этого используйте paginator.page_query_param.

  • view.paginate_by_param - Вместо этого используйте paginator.page_size_query_param.

  • view.max_paginate_by - Вместо этого используйте paginator.max_page_size.

  • settings.PAGINATE_BY - Вместо этого используйте paginator.page_size.

  • settings.PAGINATE_BY_PARAM - Вместо этого используйте paginator.page_size_query_param.

  • settings.MAX_PAGINATE_BY - Вместо этого используйте paginator.max_page_size.

Классы ModelSerializer и HyperlinkedModelSerializer теперь должны включать опцию fields или exclude, хотя можно использовать и ярлык fields = '__all__'. Отказ от включения одной из этих двух опций в настоящее время находится на стадии обесценивания и будет полностью удален в релизе 3.5. Такое поведение делает ModelSerializer более близким к поведению ModelForm в Django.

Вернуться на верх