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

Версионирование

Минорные номера версий (0.0.x) используются для изменений, совместимых с API. Вы должны иметь возможность переходить от одной минорной версии к другой без каких-либо других изменений кода.

Средние номера версий (0.x.0) могут включать изменения API, в соответствии с deprecation policy. Перед обновлением между средними версиями следует внимательно прочитать примечания к выпуску.

Основные номера версий (x.0.0) зарезервированы для существенных этапов проекта.

Политика амортизации

Релизы фреймворка REST следуют формальной политике обесценивания, которая соответствует Django’s deprecation policy.

Временная шкала устаревания функции, присутствующей в версии 1.0, будет выглядеть следующим образом:

  • Версия 1.1 останется полностью обратно совместимой с 1.0, но будет выдавать RemovedInDRF13Warning предупреждения, подклассы PendingDeprecationWarning , если вы используете функции, которые должны быть устаревшими. Эти предупреждения молчащие по умолчанию , но могут быть явно включены, когда вы будете готовы начать перенос необходимых изменений. Например, если вы начнете проводить тесты, используя python -Wd manage.py test , вы будете предупреждены о любых изменениях в API, которые вам необходимо сделать.

  • Версия 1.2 переводит эти предупреждения в подкласс DeprecationWarning , который по умолчанию является громким.

  • Версия 1.3 полностью удалит устаревшие части API.

Обратите внимание, что в соответствии с политикой Django, любые части фреймворка, не упомянутые в документации, следует рассматривать как частные API, и они могут быть изменены.

Обновление

Чтобы обновить фреймворк Django REST до последней версии, используйте pip:

pip install -U djangorestframework

Вы можете определить текущую установленную версию, используя pip show :

pip show djangorestframework

Серия 3.12.x

3.12.4

Дата: 26 марта 2021 года

  • Верните использование deque вместо list для отслеживания дросселирования .history. (Из-за несовместимости с бэкендом кэша DjangoRedis. См. #7870) [#7872].

3.12.3

Дата: 25 марта 2021 года

  • Правильная обработка ATOMIC_REQUESTS при использовании нескольких конфигураций базы данных. [#7739]

  • Обход запроса COUNT, когда настроен LimitOffsetPagination, но параметры пагинации не включены в запрос. [#6098]

  • Уважение allow_null=True на DecimalField. [#7718]

  • Разрешить заглавные "Yes" /** "No" значения с BooleanField. [#7739]

  • Добавьте метод PageNumberPagination.get_page_number() для переопределения поведения. [#7652]

  • Исправлено отображение значений timedelta в схемах OpenAPI, когда они присутствуют как поля по умолчанию, min или max. [#7641]

  • Отображение JSON-полей с отступами в просматриваемых формах API. [#6243]

  • Удалите ненужный запрос к базе данных в представлениях admin Token. [#7852]

  • Вызывать ошибки валидации, когда в поля PrimaryKeyRelatedField передаются bools, вместо приведения к ints. [#7597]

  • Не включайте свойства модели в качестве автоматически генерируемых полей упорядочивания с OrderingFilter. [#7609]

  • Используйте deque вместо list для отслеживания дросселирования .history. [#7849]

3.12.2

Дата: 13 октября 2020 года

  • Исправление проблемы, если rest_framework.authtoken.models импортирован, но rest_framework.authtoken отсутствует в INSTALLED_APPS. [#7571]

  • Игнорировать подклассы BrowsableAPIRenderer в схеме OpenAPI. [#7497]

  • Более узкий отлов исключений в полях serilizer, чтобы гарантировать, что любые ошибки в неработающих методах get_queryset() не будут замаскированы. [#7480]

3.12.1

Дата: 28 сентября 2020 года

  • Добавить TokenProxy миграцию. [#7557]

3.12.0

Дата: 28 сентября 2020 года

  • Добавьте опцию --file к команде generateschema. [#7130]

  • Поддержка tags для генерации схем OpenAPI. См. the schema docs. [#7184]

  • Поддержка настройки идентификатора операции для генерации схемы. См. the schema docs. [#7190]

  • Поддержка компонентов OpenAPI для генерации схем. См. the schema docs. [#7124]

  • Следующие методы на AutoSchema становятся общедоступными API: get_path_parameters , get_pagination_parameters , get_filter_parameters , get_request_body , get_responses , get_serializer , get_paginator , map_serializer , map_field , map_choice_field , map_field_validators , allows_filters. См. the schema docs

  • Добавьте поддержку базы данных-агностики в Django 3.1 JSONField. [#7467]

  • SearchFilter теперь поддерживает вложенный поиск по полям модели JSONField и HStoreField. [#7121]

  • SearchFilter теперь поддерживает поиск по полям annotate(). [#6240]

  • Модель authtoken больше не раскрывает pk в URL-адресе администратора. [#7341]

  • Добавьте __repr__ для экземпляров запроса. [#7239]

  • Декодирование UTF-8 с отступлением от Latin-1 для основных учетных данных. [#7193]

  • CharField обрабатывает суррогатные символы как ошибку валидации. [#7026]

  • Не включайте callables в схемы в качестве значений по умолчанию. [#7105]

  • Улучшите вывод схемы ListField, чтобы она включала всю доступную информацию о дочерних элементах. [#7137]

  • Разрешите включать default=False для выводов схемы BooleanField. [#7165]

  • Включите информацию "type" в выводы схемы ChoiceField. [#7161]

  • Включите "type": "object" в объекты схемы. [#7169]

  • Не включайте компонент в вывод схемы для запросов DELETE. [#7229]

  • Исправьте типы схем для DecimalField. [#7254]

  • Исправьте генерацию схемы для представления ObtainAuthToken. [#7211]

  • Поддержка передачи context=... в методы вида .get_serializer(). [#7298]

  • Передавайте пользовательский код в PermissionDenied, если класс разрешения имеет один набор. [#7306]

  • Включите «пример» в вывод пагинации схемы. [#7275]

  • Код состояния по умолчанию 201 при выводе схемы для POST-запросов. [#7206]

  • Используйте camelCase для идентификаторов операций при выводе схемы. [#7208]

  • Предупреждение о существовании дублирующихся идентификаторов операций в выводе схемы. [#7207]

  • Улучшена обработка десятичного типа при отображении ChoiceField на вывод схемы. [#7264]

  • Отключите псевдонимы YAML для вывода схем OpenAPI. [#7131]

  • Исправьте имена URL-адресов действий для API, включенных в URL с разделенными именами. [#7287]

  • Обновите версию jQuery с 3.4 до 3.5. [#7313]

  • Исправьте обработку UniqueTogether, когда поля сериализатора используют source=.... [#7143]

  • HTTP HEAD запросы теперь правильно устанавливают self.action на экземпляре ViewSet. [#7223]

  • Возвращает действительную схему OpenAPI для случая, когда пути к схеме API не существует. [#7125]

  • Включите тесты в дистрибутив пакета. [#7145]

  • Разрешить средствам проверки типов поддерживать аннотации типа ModelSerializer[Author]. [#7385]

  • Не включайте недопустимую часть charset=None в заголовок запроса Content-Type при использовании APIClient. [#7400]

  • Исправьте Z /** z токены в регексах OpenAPI. [#7389]

  • Исправьте PrimaryKeyRelatedField и HyperlinkedRelatedField, когда поле источника на самом деле является свойством. [#7142]

  • Token.generate_key теперь является методом класса. [#7502]

  • @action предупреждает, если метод обернут в декоратор, который не сохраняет информацию, используя @functools.wraps. [#7098]


Серия 3.11.x

3.11.2

Дата: 30 сентября 2020 г.

  • Безопасность: Отказ от тега шаблона urlize_quoted_links в пользу встроенного в Django urlize. Устраняет XSS-уязвимость для некоторых видов контента в browsable API.

3.11.1

Дата: 5 августа 2020 г.

  • Исправление совместимости с Django 3.1

3.11.0

Дата: 12 декабря 2019 г.

  • Drop .set_context API in favour of a ``requires_context:doc:` marker <3.11-announcement#validator-default-context>`.

  • Виджет по умолчанию для текстового поля с вариантами выбора заменен на поле выбора. #6892

  • Поддерживается вложенная запись в нереляционные поля, такие как JSONField. #6916

  • Включение типов носителей запросов/ответов в схемы OpenAPI на основе настроенных парсеров/рендереров. #6865

  • Включать описания операций в схемы OpenAPI, основываясь на docstring представления. #6898

  • Исправьте представление сериализаторов со всеми необязательными полями в схемах OpenAPI. #6941

  • Исправьте представление serializers.HStoreField в схемах OpenAPI. #6914

  • Исправьте генерацию OpenAPI, когда не указаны название или версия. #6912

  • Используйте представление int64 для больших целых чисел в схемах OpenAPI. #7018

  • Улучшены сообщения об ошибках, если в подклассе поля не предусмотрена реализация .to_representation. #6996

  • Исправление для классов сериализатора, использующих множественное наследование. #6980

  • Исправление реверсирования полей URL с гиперссылками с компонентами в процентном кодировании в пути. #7059

  • Обновите bootstrap до версии 3.4.1. #6923

Серия 3.10.x

3.10.3

Дата: 4 сентября 2019 г.

  • Включить версию API в генерацию схемы OpenAPI, по умолчанию - пустая строка.

  • Добавьте свойства пагинации в схемы ответов OpenAPI.

  • Добавьте отсутствующее свойство «description» в схемы ответов OpenAPI.

  • Включать «required» только для непустых случаев в схемах OpenAPI.

  • Исправьте схемы ответов для случая «DELETE» в схемах OpenAPI.

  • Используйте тип массива для схем ответов представления списка.

  • Используйте последовательный стиль lowerInitialCamelCase в идентификаторах операций OpenAPI.

  • Исправьте minLength /** maxLength /** minItems /** maxItems свойства в схемах OpenAPI.

  • Вызывайте FileField.url только один раз при сериализации для повышения производительности.

  • Устранение побочного случая, когда расчеты дросселирования могли ошибаться после изменения конфигурации.

3.10.2

Дата: 29 июля 2019 г.

  • Различные исправления схемы OpenAPI.

  • Возможность указать urlconf в include_docs_urls.

3.10.1

Дата: 17 июля 2019 г.

  • Не включайте поля автозаполнения в TokenAuth admin, поскольку это накладывает ограничения на пользовательские модели пользователей и admin.

  • Требуется uritemplate для генерации схемы OpenAPI, но не coreapi.

3.10.0

Дата : 15th July 2019

  • Переключитесь на генерацию схемы OpenAPI.

  • Отказ от поддержки Python 2.

  • Добавить опцию CLI generateschema --generator_class

  • Обновлена зависимость PyYaml для генерации схемы OpenAPI до pyyaml>=5.1 #6680.

  • Разрешить DeprecationWarning с помощью markdown. #6317

  • Используйте user.get_username в шаблонах, предпочитая user.username.

  • Исправление проблемы с пагинацией курсора, которая могла возникнуть после удаления объектов.

  • Исправление для нулевых полей с source="*"

  • Всегда применяйте все классы дросселирования во время проверок дросселирования.

  • Обновление зависимостей jQuery и Markdown.

  • Не стоит строго запрещать избыточные аргументы имени поля SerializerMethodField.

  • Не выполняйте дополнительные действия в browable API, если вы не аутентифицированы.

  • Удаление нулевых символов из параметров поиска.

  • Утрачиваем декоратор detail_route в пользу action , который принимает detail bool. Вместо него используйте @action(detail=True). gh6687

  • Утрачиваем декоратор list_route в пользу action , который принимает detail bool. Вместо него используйте @action(detail=False). gh6687

серия 3.9.x

3.9.4

Дата: 10 мая 2019 г.

Это поддерживающий выпуск, в котором исправлена ошибка обработки ошибок в Python 2.

3.9.3

Дата: 29 апреля 2019 г.

Это последний выпуск Django REST Framework, который будет поддерживать Python 2. Обязательно перейдите на Python 3 перед обновлением до Django REST Framework 3.10.

  • Скорректирована проверка совместимости для django-guardian, чтобы последняя версия guardian (v1.4.9) была совместима с Python 2. #6613

3.9.2

Дата : 3rd March 2019

  • Маршрутизаторы: аннулировать кэш _urls на register() #6407

  • Отложите создание рендеринга схемы, чтобы избежать необходимости использования pyyaml. #6416

  • Добавлен блок „request_forms“ в base.html #6340

  • Исправлена функция SchemaView для сброса рендеринга при исключении. #6429

  • Обновление зависимости Django Guardian. #6430

  • Обеспечена поддержка Django 2.2 #6422 & #6455

  • Сделана совместимость шаблонов с сессионным CSRF. #6207

  • Поле validators адаптировано для приема не списочных итераций. #6282

  • Добавлен хук SearchFilter.get_search_fields(). #6279

  • Исправьте DeprecationWarning при обращении к классам collections.abc через collections #6268

  • Разрешенные Q-объекты в интроспекции limit_choices_to. #6472

  • Добавлена ленивая оценка для составленных разрешений. #6463

  • Добавьте оператор отрицания ~ к композиции разрешений #6361

  • Избегайте вызова distinct для аннотированных полей в SearchFilter. #6240

  • Введены классы RemovedInDRF…Warning для упрощения обесценивания. #6480

3.9.1

Дата : 16th January 2019

  • Устранение проблемы XSS в просматриваемом API. #6330

  • Обновите Bootstrap до версии 3.4.0, чтобы решить проблему XSS.

  • Устранение проблем с композитными разрешениями. #6299

  • Соблюдать limit_choices_to на внешних ключах. #6371

3.9.0

Дата : 18th October 2018

  • Улучшения в дополнительных действиях ViewSet #5605

  • Исправить поддержку суффиксов ViewSet action #6081

  • Разрешить action разделы документации #6060

  • Избавьтесь от аргумента Router.register base_name в пользу basename. #5990

  • Избавьтесь от метода Router.get_default_base_name в пользу Router.get_default_basename. #5990

  • Измените CharField, чтобы запретить нулевые байты. #6073 Чтобы вернуться к старому поведению, подкласс CharField и удалите ProhibitNullCharactersValidator из валидаторов. … code-block:: python

    class NullableCharField(serializers.CharField):
    def __init__(self, *args, **kwargs):

    super().__init__(*args, **kwargs) self.validators = [v for v in self.validators if not isinstance(v, ProhibitNullCharactersValidator)]

  • Добавьте команды управления OpenAPIRenderer и generate_schema. #6229

  • Добавьте OpenAPIRenderer по умолчанию и добавьте документацию по схемам. #6233

  • Разрешить составление разрешений #5753

  • Разрешить nullable BooleanField в Django 2.1 #6183

  • Добавьте тестирование поддержки Python 3.7 #6141

  • Тестирование с использованием Django 2.1 финального релиза. #6109

  • Добавлен djangorestframework-datatables в пакеты сторонних разработчиков #5931

  • Изменить формат даты ISO 8601, чтобы исключить варианты только год/месяц #5936.

  • Обновите все URL-адреса pypi.python.org до pypi.org #5942.

  • Убедитесь, что в html-формах (данные многочастных форм) соблюдаются необязательные поля #5927.

  • Разрешить хэширование ErrorDetail. #5932

  • Корректный разбор схемы для JSONField #5878

  • Рендеринг описаний (из help_text) с использованием безопасного #5869

  • Удалено входное значение из deault_error_message #5881

  • Добавлена поддержка min_value/max_value в поле DurationField #5643

  • Исправлено перезаписывание экземпляра в блоке try/except оптимизации только для pk #5747.

  • Исправлена ошибка AttributeError в фильтре элементов, когда значение равно None #5981.

  • Исправлена ошибка Javascript e.indexOf не является функцией #5982

  • Исправьте схемы для дополнительных действий #5992

  • Улучшено get_error_detail для использования error_dict/error_list #5785

  • Улучшение URL-адресов в рендере Admin #5988

  • Добавить раздел «Сообщество» в документацию, незначительная очистка #5993.

  • Перемещение импорта опекунов из совместимости #6054

  • Утрачиваем класс DjangoObjectPermissionsFilter, перемещенный в пакет djangorestframework-guardian. #6075

  • Отказаться от поддержки Django 1.10 #5657

  • Ловить только TypeError/ValueError для поиска объектов #6028

  • Работа с моделями без менеджера .objects в ModelSerializer. #6111

  • Улучшите сообщение об ошибке ModelSerializer.create(). #6112

  • Исправьте ошибку проверки куки CSRF при использовании session auth с django 1.11.6+ #6113

  • Обновлена документация по JWT. #6138

  • Исправление автоскейпа, не передаваемого в фильтр urlize_quoted_links #6191

серия 3.8.x

3.8.2

Дата : 6th April 2018

  • Исправьте валидацию read_only + default unique_together. #5922

  • authtoken.views import coreapi из rest_framework.compat, не напрямую. #5921

  • Документы: Добавьте недостающий аргумент „detail“ в Маршрут #5920

3.8.1

Дата : 4th April 2018

  • Используйте старое поведение url_name в декораторах маршрутов #5915

    Для list_route и detail_route сохраняется старое поведение url_name , основанное на url_path вместо имени функции.

3.8.0

Дата : 3rd April 2018

  • Перемена: Изменить поведение read_only плюс default. #5886

    Поля read_only теперь всегда будут исключаться из записываемых полей.

    Ранее поля read_only со значением default использовали default для операций создания и обновления.

    Чтобы сохранить старое поведение, вам может понадобиться передать значение полей read_only при вызове save() в представлении:

       def perform_create(self, serializer):
           serializer.save(owner=self.request.user)
    
    
    Alternatively you may override ``save()`` or ``create()`` or ``update()`` on the serializer as appropriate.
    
  • Исправьте поведение allow_null, когда required=False #5888

    Без явного default , allow_null подразумевает значение по умолчанию null для исходящей сериализации. Ранее такие поля пропускались, если были доступны только для чтения или не требовались.

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

    Например:

    @property
    def data(self):
        """
        Drop `maybe_none` field if None.
        """
        data = super().data
        if 'maybe_none' in data and data['maybe_none'] is None:
            del data['maybe_none']
        return data
    
  • Рефакторинг динамической генерации маршрутов и улучшение интроспективности действий набора представлений. #5705

    <<< 0 >>** s были предоставлены новые атрибуты и методы, которые позволяют ему интроспектировать свой набор действий и детали текущего действия.

    • Объединил list_route и detail_route в один декоратор action.

    • Получить все дополнительные действия на ViewSet с .get_extra_actions().

    • Дополнительные действия теперь устанавливают url_name и url_path на декорированный метод.

    • url_name теперь основывается на имени функции, вместо url_path , так как путь не всегда подходит (например, перехват аргументов в пути).

    • Включить реверсирование url действия через метод .reverse_action() (добавлено в 3.7.4)

    • Пример обратного вызова: self.reverse_action(self.custom_action.url_name)

    • Добавьте иниткварг detail, чтобы указать, работает ли текущее действие с коллекцией или с одним экземпляром.

      Дополнительные изменения:

    • Устранены list_route & detail_route в пользу декоратора action с detail boolean.

    • Отменены варианты динамического списка/детального маршрута в пользу DynamicRoute с булевой detail.

    • Переработана динамическая генерация маршрутов маршрутизатора.

    • list_route и detail_route сохраняют старое поведение url_name , основываясь на url_path вместо имени функции.

  • Исправьте форматирование заметки о выпуске 3.7.4 #5704

  • Документы: Обновление ссылок на DRF Writable Nested Serializers #5711

  • Документы: Исправлена опечатка в примере URL-адресов авторизации. #5713

  • Улучшение ошибок дочерних композитных полей #5655

  • Отключить HTML-вводы для полей диктовки/списка #5702

  • Исправьте опечатку в документе HostNameVersioning doc #5709

  • Используйте rsplit для получения имени модуля и класса для импорта #5712

  • Формализовать URLPatternsTestCase #5703

  • Добавить тест перевода исключений #5700

  • Test staticfiles #5701

  • Добавить drf-yasg в документацию и схему сторонних пакетов #5720

  • Удалите неиспользуемые compat._resolve_model() #5733

  • Устранение обходного пути для неподдерживаемого Python 3.2 #5734.

  • Предпочтение iter(dict) перед iter(dict.keys()) #5736

  • Передайте аргумент python_requires в setuptools #5739

  • Удалите неиспользуемые ссылки из документации #5735

  • Предпочитать протокол https для ссылок в документации, когда это доступно #5729

  • Добавить HStoreField, тесты полей postgres #5654

  • Всегда полностью квалифицируйте ValidationError в документации #5751.

  • Удалить недоступный код из ManualSchema #5766

  • Разрешена настройка примеров кода документации API #5752

  • Обновлена документация для использования pip show #5757.

  • Загружать „static“ вместо „staticfiles“ в шаблонах #5773

  • Исправлена опечатка в fields документации #5783

  • См. «NamespaceVersioning» вместо «NamespacedVersioning» в документации #5754.

  • ErrorDetail: добавить __eq__ /** __ne__ и __repr__ #5787

  • Замените background-attachment: fixed в документации #5777

  • Сделать 404 и 403 ответы согласованными с exceptions.APIException выводом #5763

  • Небольшое исправление в документации API: схемы #5796.

  • Исправьте генерацию схемы для PrimaryKeyRelatedField #5764

  • Представить сериализатор DictField как объект в схеме #5765

  • Добавлена документация с примером повторной реализации ObtainAuthToken #5802.

  • Добавьте схему к представлению ObtainAuthToken #5676

  • Исправьте обработку данных формы запроса #5800

  • Исправление импорта представлений authtoken #5818

  • Обновление pytest, isort #5815 #5817 #5894

  • Исправлена обработка активного часового пояса для дат, отличных от ISO8601. #5833

  • Заставил TemplateHTMLRenderer отображать входы IntegerField, когда значение 0. #5834

  • Исправлена конечная точка в инструкциях по обучению #5835

  • Добавьте ролевые фильтры Django Rest Framework в пакеты третьих сторон #5809.

  • Используйте единственную копию статических активов. Обновление jQuery #5823

  • Измените тернарные условия, чтобы они соответствовали стандарту PEP308 #5827

  • Добавлены ссылки на руководства „A Todo List API with React“ и „Blog API“ #5837.

  • Исправьте опечатку в комментарии в ModelSerializer #5844

  • Добавьте администратора к установленным приложениям, чтобы избежать сбоев при тестировании. #5870

  • Исправлена схема для UUIDField в SimpleMetadata. #5872

  • Исправлена документация по включению маршрутизатора с пространствами имен. #5843

  • Тест использования объектов модели для точечного источника по умолчанию #5880

  • Разрешить обход нулевых связанных полей #5849

  • Добавлено: Учебник: Django REST с React (Django 2.0) #5891.

  • Добавьте LimitOffsetPagination.get_count, чтобы разрешить переопределение метода #5846

  • Не показывать скрытые поля в метаданных #5854

  • Разрешить OrderingFilter обрабатывать пустой кортеж (или список) для поля „ordering“. #5899

  • Добавлены обработчики типовых ошибок 500 и 400 JSON. #5904

Серия 3.7.x

3.7.7

Дата : 21st December 2017

  • Исправьте опечатку для включения файлов локали .mo в упаковку. :doc:`#5697 <https://github.com/encode/django-rest-framework/issues/5697>`* , #5695

3.7.6

Дата : 21st December 2017

  • Добавьте недостающие файлы иконок *.ico в упаковку.

3.7.5

Дата : 21st December 2017

  • Добавьте недостающие файлы шрифтов *.woff2 в упаковку. #5692

  • Добавьте недостающие файлы локали .mo в упаковку. :doc:`#5695 <https://github.com/encode/django-rest-framework/issues/5695>`* , #5696

3.7.4

Дата : 20th December 2017

  • Схема: Метод извлечения для обработки manual_fields #5633

    Позволяет легче настраивать обработку manual_fields, например, для обеспечения ручных полей для каждого метода. AutoSchema добавляет get_manual_fields , как предполагаемую точку переопределения, и вспомогательный метод update_fields , для обработки замены полей по имени из списка, который, в общем случае, вы не должны переопределять.

    Примечание: AutoSchema.__init__ теперь гарантирует, что manual_fields является списком. Ранее он мог храниться внутри списка как None.

  • Удалите шим совместимости ulrparse; вместо него используйте шесть #5579

  • Убрать обертку совместимости для TimeDelta.total_seconds() #5577

  • Очистите все пробельные символы во всем проекте #5578

  • Очистка совместимости #5581

  • Добавьте блок pygments CSS в просматриваемые представления API #5584 #5587

  • Удалить set_rollback() из сочетания #5591

  • Исправьте доступ к телу запроса/POST #5590

  • Переименуйте тест для ссылки на правильную проблему #5610

  • Исправления в документации #5611 #5612

  • Удалите ссылки на неподдерживаемые версии Django в документации и коде #5602

  • Тест исключения сериализатора для объявленных полей #5599

  • Исправлена генерация схем для бэкендов фильтров #5613

  • Небольшая очистка для тестов ModelSerializer #5598

  • Реализовать доступ к атрибуту запроса с __getattr__ #5617

  • Исправлено SchemaJSRenderer отображает недопустимый Javascript #5607

  • Сделать поддержку Django 2.0 официальной/явной #5619.

  • Выполните проверку типа переданного аргумента запроса #5618

  • Исправьте скрытие AttributeError на аутентификаторах запросов #5600

  • Обновление требований к тестам #5626

  • Документы: Serializer._declared_fields разрешить изменение полей на сериализаторе #5629

  • Исправить упаковку #5624

  • Исправление рендеринга readme для PyPI, добавление сборки readme в CI #5625.

  • Обновить учебник #5622

  • Не обязательные поля с allow_null=True не должны подразумевать значение по умолчанию #5639

  • Документы: Добавить примечание о выводе сериализации allow_null #5641

  • Обновление для использования релиза Django 2.0 в tox.ini #5645

  • Исправление Serializer.data для рендеринга Browsable API при предоставлении недействительных data #5646

  • Документы: Обратите внимание на ограничения AutoSchema на голом APIView #5649

  • Добавьте .basename и .reverse_action() в ViewSet #5648

  • Документы: Исправьте опечатки в документации по сериализаторам #5652

  • Fix override_settings compat #5668

  • Добавьте параметр DEFAULT_SCHEMA_CLASS #5658

  • Добавить примечание к документации о том, что сгенерированное поле BooleanField может быть required=False #5665.

  • Добавить сборку „dist“ #5656

  • Исправьте опечатку в строке docstring #5678

  • Документы: Добавить UNAUTHENTICATED_USER = None примечание #5679

  • Обновление примера OPTIONS из «Documenting Your API» #5680.

  • Документы: Добавьте примечание о разрешениях объектов для FBVs #5681

  • Документы: Добавить пример в to_representation docs #5682

  • Добавить ссылку на Classy DRF в документацию #5683

  • Документ ViewSet.action #5685

  • Исправьте опечатку в документах схемы #5687

  • Исправление разбора шаблона URL при генерации схемы #5689

  • Добавьте пример использования source=‘*’ в документацию по пользовательским полям. #5688

  • Исправьте поведение format_suffix_patterns с маршрутами path() в Django 2 #5691.

3.7.3

Дата : 6th November 2017

  • Исправьте ошибку AppRegistryNotReady из импорта представления contrib.auth #5567

3.7.2

Дата : 6th November 2017

  • Исправлена совместимость с Django 2.1 из-за удаления представлений django.contrib.auth.login()/logout(). #5510

  • Добавьте недостающий импорт для TextLexer. #5512

  • Добавление примеров и документации по кэшированию #5514

  • Включить формат даты и времени для генерации схемы #5511

  • Используйте тройные обратные знаки для блоков кода разметки #5513

  • Интерактивные документы - сделать нижние элементы боковой панели липкими #5516

  • Уточнить проверку системы пагинации #5524

  • Остановить JSONBoundField, обрабатывающий недействительный JSON #5527

  • Приведите JSONField к виду textarea в Browsable API #5530

  • Схема: Исключение OPTIONS/HEAD для действий ViewSet #5532

  • Исправьте упорядочивание для точечных источников #5533

  • Исправить: Поля с allow_null=True должны подразумевать значение сериализации по умолчанию #5518

  • Убедитесь, что заголовок Location является строго „str“, а не подклассом. #5544

  • Добавьте импорт к примеру в api-guide/parsers #5547

  • Catch OverflowError для «out of range» datetimes #5546

  • Добавьте djangorestframework-rapidjson в пакеты сторонних разработчиков #5549

  • Увеличение тестового покрытия для команды drf_create_token #5550

  • Добавьте классификатор trove для поддержки Python 3.6. #5555

  • Добавьте поддержку кэширования pip в конфигурацию Travis CI #5556

  • Переименуйте раздел [** wheel ] в [** bdist_wheel ], так как первый является наследием #5557.

  • Исправьте предупреждения об обесценивании недопустимой управляющей последовательности #5560

  • Добавить шаблон ошибок интерактивных документов #5548

  • Добавьте параметр округления к DecimalField #5562

  • Исправьте все BytesWarning, пойманные во время тестов #5561.

  • Используйте литералы dict и set вместо вызовов dict() и set() #5559

  • Измените шаблон валидации ImageField, используйте валидаторы из DjangoImageField #5539

  • Исправление обработки символов юникода в query_string в Python 2 #5552

3.7.1

Дата : 16th October 2017

  • Исправление Интерактивная документация всегда использует false для булевых полей в запросах #5492

  • Улучшение совместимости с Django 2.0 alpha. #5500 #5503

  • Улучшена обработка коллизий именования схем #5486

  • Добавлена дополнительная документация и тесты, касающиеся предоставления значения по умолчанию для точечных полей source #5489

3.7.0

Дата : 6th October 2017

  • Исправьте DjangoModelPermissions для обеспечения аутентификации пользователя перед вызовом метода представления get_queryset(). В качестве побочного эффекта это изменяет порядок проверки разрешений и аутентификации HTTP-метода, и ответы 405 будут возвращаться только при аутентификации. Если вы хотите повторить старое поведение, подробности см. в PR. #5376

  • Утратил силу exclude_from_schema на декораторе APIView и api_view. Установите schema = None или @schema(None) в зависимости от ситуации. #5422

  • Теперь DateTimeField с учетом часового пояса при сериализации учитывается активное значение или значение по умолчанию timezone, вместо того, чтобы всегда использовать UTC. #5435

    Устранение несоответствия, при котором экземпляры сериализовались с указанным временем даты для create, но UTC для retrieve. #3732

    Возможное нарушение обратной совместимости, если вы полагались на то, что строки времени даты будут соответствовать UTC. При необходимости, клиент должен интерпретировать время даты или set default or active timezone (docs) в UTC.

  • Удален DjangoFilterBackend в соответствии с политикой обесценивания. Вместо этого используйте django_filters.rest_framework.FilterSet и/или django_filters.rest_framework.DjangoFilterBackend. #5273

  • Не вычеркивайте микросекунды из time при кодировании. Это соответствует datetime.

    BC Change : Ранее кодировались только миллисекунды. #5440

  • Добавлена настройка STRICT_JSON (по умолчанию True ) для исключения расширенных значений float (** nan , inf , -inf ), принимаемых модулем Python json.

    BC Change : Ранее эти значения преобразовывались в соответствующие строки. Установите STRICT_JSON в False, чтобы восстановить прежнее поведение. #5265

  • Добавить поддержку параметра page_size в классе CursorPaginator #5250

  • Сделайте DEFAULT_PAGINATION_CLASS None по умолчанию.

    BC Change : Если вы просто установили PAGE_SIZE, чтобы включить пагинацию, вам нужно добавить DEFAULT_PAGINATION_CLASS. Предыдущее значение по умолчанию было rest_framework.pagination.PageNumberPagination. Для этого предусмотрено предупреждение о проверке системы. Вы можете промолчать об этом, если вы устанавливаете класс пагинации на основе каждого просмотра. #5170

  • Отлавливайте APIException от get_serializer_fields при генерации схемы. #5443

  • Разрешить пользовательские классы аутентификации и разрешений при использовании include_docs_urls #5448

  • Отложите оценку переведенных строк на валидаторах. #5452

  • Добавлено значение по умолчанию для параметра „detail“ в исключение „ValidationError“ #5342

  • Скорректируйте правила схемы get_filter_fields для соответствия фреймворку #5454

  • Обновленная матрица тестов добавляет Django 2.0 и исключает Django 1.8 и 1.9

    BC Change : Это удаляет Django 1.8 и Django 1.9 из поддерживаемых версий Django REST Framework. #5457

  • Исправлено предупреждение об устаревании в serializers.ModelField #5058.

  • Добавлено более явное сообщение об ошибке, когда get_queryset возвращает None #5348

  • Исправьте документацию для ответа data описание #5361

  • Исправить pycache /.pyc исключения при упаковке #5373.

  • Исправьте обработку значений по умолчанию для точечных источников #5375

  • Убедитесь, что content_type установлен при передаче пустого тела в RequestFactory #5351

  • Исправить документацию ErrorDetail #5380

  • Разрешить необязательное содержание в форме общего содержания #5372

  • Обновлены поддерживаемые значения для поля NullBooleanField #5387.

  • Исправление пользовательских именованных полей ModelSerializer с источником на модели #5388

  • Исправлен пример документации MultipleFieldLookupMixin для правильной проверки разрешения на уровне объекта #5398.

  • Обновление примера get_object() в permissions.md #5401

  • Исправьте команду управления authtoken #5415

  • Исправить генерацию схемы разметки #5421

  • Разрешить динамически устанавливать ChoiceField.choices #5426

  • Добавьте макет проекта в быстрый старт #5434

  • Повторное использование функции „apply_markdown“ в шаблоне „render_markdown“ #5469

  • Добавлены ссылки на пакет drf-openapi в документации #5470

  • Добавлена подсветка кода docstrings с помощью pygments #5462.

  • Исправлено отображение документации для представлений с именами data #5472

  • Документы: Уточнено поведение валидации „to_internal_value()“ #5466

  • Исправьте недостающий вызов six.text_type() в APIException.** str #5476

  • Документ documentation.py #5478

  • Исправление коллизий именования в генерации схем #5464

  • Вызовите функцию Django authenticate с объектом запроса #5295.

  • Обновление coreapi JS до версии 0.1.1 #5479

  • Have is_list_view распознать RetrieveModel… views #5480

  • Удалите код совместимости с Django 1.8 и 1.9 #5481

  • Удалите устаревший код схемы из DefaultRouter #5482

  • Переработайте генерацию схем, чтобы обеспечить возможность настройки для каждого вида.

    BC Change : SchemaGenerator.get_serializer_fields был рефакторингован как AutoSchema.get_serializer_fields и исключен аргумент view [#5354][gh5354]

Серия 3.6.x

3.6.4

Дата : 21st August 2017

  • Игнорировать любые неверно сформированные параметры запроса для OrderingFilter. #5131

  • Улучшение объема памяти при чтении больших запросов JSON. #5147

  • Исправьте генерацию схемы для пагинации. #5161

  • Исправьте исключение, когда HTML_CUTOFF устанавливается в None. #5174

  • Исправление API browsable, не поддерживающего корректно multipart/form-data. #5176

  • Исправлено test_hyperlinked_related_lookup_url_encoded_exists. #5179

  • Убедитесь, что max_length находится в kwargs FileField. #5186

  • Исправьте list_route & detail_route с kwargs содержит фигурную скобку в url_path #5187

  • Добавьте команду Django manage для создания пользователя DRF Token. #5188

  • Убедитесь, что шаблоны документации API не проверяют аутентификацию пользователя #5162

  • Исправьте особый случай, когда поле OneToOneField также является первичным ключом. #5192

  • Добавлена aria-label и новый регион для целей доступности в base.html #5196

  • Цитирование вложенных параметров API в api.js. #5214

  • Установите ViewSet args/kwargs/request перед отправкой. #5229

  • Добавлена поддержка юникода в SlugField. #5231

  • Исправьте появление HiddenField в начальном содержимом формы Raw Data. #5259

  • Вызывать ошибку валидации при неверном разборе часового пояса. #5261

  • Исправьте поведение/производительность SearchFilter to-many. #5264

  • Упрощенные цепные сравнения и незначительные исправления кода. #5276

  • RemoteUserAuthentication, документация и тесты. #5306

  • Вернуть «Кэширование корня поля и свойства контекста» #5313.

  • Исправьте интроспекцию поля списка в схеме. #5326

  • Исправление интерактивной документации для нескольких вложенных и дополнительных методов. #5334

  • Исправление/удаление неопределенного шаблона var «schema» #5346

3.6.3

Дата : 12th May 2017

3.6.2

Дата : 10th March 2017

3.6.1

Дата : 9th March 2017

3.6.0

Дата : 9th March 2017

См. release announcement.


Серия 3.5.x

3.5.4

Дата : 10th February 2017

3.5.3

Дата : 7th November 2016

3.5.2

Дата : 1st November 2016

3.5.1

Дата : 21st October 2016

3.5.0

Дата : 20th October 2016


Серия 3.4.x

3.4.7

Дата : 21st September 2016

3.4.6

Дата : 23rd August 2016

3.4.5

Дата : 19th August 2016

  • Улучшите обработку ошибок отладки. ([#4416][gh4416], [#4409][gh4409])

  • Разрешить пользовательскую настройку CSRF_HEADER_NAME. ([#4415][gh4415], [#4410][gh4410])

  • Включите атрибут .action для наборов представлений при генерации схем. ([#4408][gh4408], [#4398][gh4398])

  • Не включайте элементы request.FILES в request.POST. ([#4407][gh4407])

  • Исправьте отрисовку множественных чекбоксов. ([#4403][gh4403])

  • Исправьте docstring для Field.get_default. ([#4404][gh4404])

  • Замените символ utf8 на его аналог ascii в README. ([#4412][gh4412])

3.4.4

Дата : 12th August 2016

3.4.3

Дата : 5th August 2016

  • Включите fallback для пользователей старого внутреннего API TemplateHTMLRenderer. ([#4361][gh4361])

3.4.2

Дата : 5th August 2016

  • Включите kwargs, переданные в „as_view“ при генерации схем. ([#4359][gh4359], [#4330][gh4330], [#4331][gh4331])

  • Доступ к request.user.is_authenticated как к свойству, а не методу, под Django 1.10+ ([#4358][gh4358], [#4354][gh4354])

  • Отфильтруйте HEAD из схем. ([#4357][gh4357])

  • extra_kwargs имеет приоритет над kwargs уникальности. ([#4198][gh4198], [#4199][gh4199], [#4349][gh4349])

  • Исправление описаний при использовании табуляции в отступах кода. ([#4345][gh4345], [#4347][gh4347])*

  • Изменение генерации контекста шаблона в TemplateHTMLRenderer. ([#4236][gh4236])

  • Параметры сериализатора по умолчанию не должны включаться в частичные обновления. ([#4346][gh4346], [#3565][gh3565])

  • Последовательное поведение и описательная ошибка FileUploadParser, когда имя файла не включено. ([#4340][gh4340], [#3610][gh3610], [#4292][gh4292], [#4296][gh4296])

  • DecimalField квантует входящие цифры. ([#4339][gh4339], [#4318][gh4318])

  • Обработка нестрокового ввода для полей IP. ([#4335][gh4335], [#4336][gh4336], [#4338][gh4338])

  • Исправьте обработку ведущей косой черты, когда генерация схемы включает корневой URL. ([#4332][gh4332])

  • Тестовые примеры для DictField с опциями allow_null. ([#4348][gh4348])

  • Обновление тестов с Django 1.10 beta до Django 1.10. ([#4344][gh4344])

3.4.1

Дата : 28th July 2016

  • Добавлен аргумент root_renderers к DefaultRouter. ([#4323][gh4323], [#4268][gh4268])

  • Добавлены аргументы url и schema_url. ([#4321][gh4321], [#4308][gh4308], [#4305][gh4305])

  • Проверка уникальности вместе должна применяться к полям, доступным только для чтения и имеющим значение по умолчанию. ([#4316][gh4316], [#4294][gh4294])

  • Установите view.format_kwarg в генераторе схем. ([#4293][gh4293], [#4315][gh4315])

  • Исправьте генератор схем для представлений с pagination_class = None. ([#4314][gh4314], [#4289][gh4289])

  • Исправьте генератор схем для представлений без get_serializer_class. ([#4265][gh4265], [#4285][gh4285])

  • Исправления для параметров медиатипа в заголовках Accept и Content-Type. ([#4287][gh4287], [#4313][gh4313], [#4281][gh4281])

  • Используйте verbose_name вместо object_name в сообщениях об ошибках. ([#4299][gh4299])

  • Незначительное обновление версии Twitter Bootstrap. ([#4307][gh4307])

  • SearchFilter выдает ошибку при использовании со связанным полем. ([#4302][gh4302], [#4303][gh4303], [#4298][gh4298])

  • Добавление поддержки кодов состояния RFC 4918. ([#4291][gh4291])

  • Добавьте LICENSE.md в собранное колесо. ([#4270][gh4270])

  • Сериализация «сложного» поля возвращает None вместо значения с версии 3.4 ([#4272][gh4272], [#4273][gh4273], [#4288][gh4288])

3.4.0

Дата : 14th July 2016

  • Не обрезайте микросекунды в выводе JSON. ([#4256][gh4256])

  • Две немного разные сериализации времени даты по стандарту iso 8601. ([#4255][gh4255])

  • Устранение некорректного включения параметров типа носителя. ([#4254][gh4254])

  • Ответ Content-Type потенциально неверно сформирован. ([#4253][gh4253])

  • Исправьте ошибку setup.py на некоторых платформах. ([#4246][gh4246])

  • Перенесите альтернативные форматы в coreapi в отдельные пакеты. ([#4244][gh4244])

  • Добавьте аргумент с ключевым словом localize в DecimalField. ([#4233][gh4233])

  • Исправление проблем с маршрутизаторами для пользовательских list-route и detail-routes. ([#4229][gh4229])

  • Версионность пространства имен с вложенными пространствами имен. ([#4219][gh4219])

  • Надежная проверка на уникальность. ([#4217][gh4217])

  • Небольшой рефакторинг must_call_distinct. ([#4215][gh4215])

  • Переопределяемое отсечение смещения в CursorPagination. ([#4212][gh4212])

  • Передавайте строки в виде строки с полями даты/времени. ([#4196][gh4196])

  • Добавьте тест, подтверждающий, что required=False является действительным для реляционного поля. ([#4195][gh4195])

  • В LimitOffsetPagination limit=0 следует вернуться к пределу по умолчанию. ([#4194][gh4194])

  • Исключите поля read_only=True из валидации unique_together и добавьте документацию. ([#4192][gh4192])

  • Работа с байтовыми строками в JSON. ([#4191][gh4191])

  • JSONField(binary=True) представляет использование двоичных строк, которые JSONRenderer не поддерживает. ([#4187][gh4187])

  • JSONField(binary=True) представляет использование двоичных строк, которые JSONRenderer не поддерживает. ([#4185][gh4185])

  • Более надежный рендеринг форм в API для просмотра. ([#4181][gh4181])

  • Пустые случаи .validated_data и .errors как списки, а не dicts для ListSerializer. ([#4180][gh4180])

  • Схемы и клиентские библиотеки. ([#4179][gh4179])

  • Удалено свойство AUTH_USER_MODEL compat. ([#4176][gh4176])

  • Уберите существующие предупреждения об износе. ([#4166][gh4166])

  • Поддержка Django 1.10. ([#4158][gh4158])

  • Обновлена версия jQuery до 1.12.4. ([#4157][gh4157])

  • Более надежное поведение по умолчанию для OrderingFilter. ([#4156][gh4156])

  • удаление кодов и тестов description.py. ([#4153][gh4153])

  • Заверните guardian.VERSION в кортеж. ([#4149][gh4149])

  • Уточните валидатор для полей с <source=> kwargs. ([#4146][gh4146])

  • Исправьте представление значений None в дочерних элементах ListField, DictField. ([#4118][gh4118])

  • Решите представление TimeField для значения midnight. ([#4107][gh4107])

  • Установите правильный код статуса в AdminRenderer для перенаправления после POST/DELETE запросов. ([#4106][gh4106])

  • Рендеринг TimeField возвращает None вместо 00:00:00. ([#4105][gh4105])

  • Исправьте неверно названный путь к локали zh-hans и zh-hant. ([#4103][gh4103])

  • Предотвращение возникновения исключения, когда предел равен 0. ([#4098][gh4098])

  • TokenAuthentication: Разрешить пользовательское ключевое слово в заголовке. ([#4097][gh4097])

  • Обработка некорректно заполненного заголовка HTTP basic auth. ([#4090][gh4090])

  • При пагинации LimitOffset происходит сбой Browseable API, когда limit=0. ([#4079][gh4079])

  • Исправлена поддержка произвольной точности DecimalField. ([#4075][gh4075])

  • Добавлена поддержка пользовательских имен CSRF-куки. ([#4049][gh4049])

  • Исправьте регрессию, вызванную #4035. ([#4041][gh4041])

  • Ни одно представление auth, не имеющее разрешения, не должно поднимать 403. ([#4040][gh4040])

  • Исправьте путаницу между string_types и text_types. ([#4025][gh4025])

  • Не перечислять варианты связанных полей в запросах OPTIONS. ([#4021][gh4021])

  • Исправьте опечатку. ([#4008][gh4008])

  • Переназначьте инициализацию представления. ([#4006][gh4006])

  • Ошибка типа в DjangoObjectPermissionsFilter на Python 3.4. ([#4005][gh4005])

  • Исправлено использование устаревшего Query.aggregates. ([#4003][gh4003])

  • Исправьте пустые строки в документах. ([#4002][gh4002])

  • Исправлена пагинация администратора, когда лимит равен 0. ([#3990][gh3990])

  • Корректировка OrderingFilter. ([#3983][gh3983])

  • Необязательные поля, связанные с сериализатором. ([#3976][gh3976])

  • Использование более безопасного способа вызова «@api_view» в учебнике. ([#3971][gh3971])

  • ListSerializer не обрабатывает ограничения unique_together. ([#3970][gh3970])

  • Добавьте недостающий файл миграции. ([#3968][gh3968])

  • OrderingFilter должен вызывать get_serializer_class() для определения полей по умолчанию. ([#3964][gh3964])

  • Удалите старые проверки Django из тестов и compat. ([#3953][gh3953])

  • Поддержите callable как значение initial для любого serializer.Field. ([#3943][gh3943])

  • Предотвращен ненужный вызов distinct() в SearchFilter. ([#3938][gh3938])

  • Исправьте сериализацию None UUID ForeignKey. ([#3936][gh3936])

  • Увольнение Django 1.7. ([#3933][gh3933])

  • Добавьте недостающий пробел в сообщении об ошибке сериализатора. ([#3926][gh3926])

  • Исправлена опечатка в _force_text_recursive. ([#3908][gh3908])

  • Попытка устранить предупреждения Django 2.0 deprecate, связанные с field.rel. ([#3906][gh3906])

  • Исправьте разбор многокомпонентных данных с помощью вложенного сериализатора со списком. ([#3820][gh3820])

  • Разрешение URL API в разных пространствах имен. ([#3816][gh3816])

  • Не используйте HTML-эскейп help_text в формах Browsable API. ([#3812][gh3812])

  • OPTIONS находит и показывает все возможные внешние ключи в поле choices. ([#3751][gh3751])

  • Предупреждения об износе Django 1.9 ([#3729][gh3729])

  • Тестовый пример для #3598 ([#3710][gh3710])

  • Добавление поддержки нескольких значений для фильтра поиска. ([#3541][gh3541])

  • Используйте get_serializer_class в фильтре упорядочивания. ([#3487][gh3487])

  • Сериализаторы с many=True должны возвращать пустой список, а не пустой dict. ([#3476][gh3476])

  • LimitOffsetPagination limit=0 исправление. ([#3444][gh3444])

  • Разрешите валидаторам откладывать оценку строк и обрабатывать новый формат строк. ([#3438][gh3438])

  • Уникальный валидатор выполняется и ломается, если поле недействительно. ([#3381][gh3381])

  • Не игнорируйте переопределенный View.get_view_name() в хлебных крошках. ([#3273][gh3273])

  • Повторная отрисовка формы при неудачном рендеринге с помощью сериализатора. ([#3164][gh3164])

  • Ограничение уникальности не позволяет обновлять вложенные сериализаторы. ([#2996][gh2996])

  • Валидаторы уникальности не должны запускаться для исключенных (read_only) полей. ([#2848][gh2848])

  • UniqueValidator вызывает исключение для вложенных объектов. ([#2403][gh2403])

  • lookup_type устарело в пользу lookup_expr. ([#4259][gh4259])


Серия 3.3.x

3.3.3

Дата : 14th March 2016.

  • Удалите строку версии из шаблонов. Спасибо @blag за отчет и исправления. ([#3878][gh3878], [#3913][gh3913], [#3912][gh3912])

  • Исправлена вертикальная html-верстка для BooleanField. Спасибо Михаилу Радчуку за исправление. ([#3910][gh3910])

  • Уменьшены предупреждения об износе в Django 1.8. Спасибо Саймону Шаретту за исправление. ([#3903][gh3903])

  • Интернационализация для authtoken. Спасибо Михаилу Начарову за исправление. ([#3887][gh3887], [#3968][gh3968])

  • Исправьте модель Token как abstract, когда приложение authtoken не объявлено. Спасибо Адаму Томасу за сообщение. ([#3860][gh3860], [#3858][gh3858])

  • Улучшение совместимости версий Markdown. Спасибо Майклу Шульцу (Michael J. Schultz) за исправление. ([#3604][gh3604], [#3842][gh3842])

  • QueryParameterVersioning не использует настройку DEFAULT_VERSION. Спасибо Брэду Монтгомери за исправление. ([#3833][gh3833])

  • Добавьте явное on_delete на моделях. Спасибо Мадсу Йенсену за исправление. ([#3832][gh3832])

  • Исправьте DateField.to_representation для работы с юникодом Python 2. Спасибо Михаилу Радчуку за исправление. ([#3819][gh3819])

  • Исправлено TimeField, не обрабатывающее времена строк. Спасибо Арески Белаиду за исправление. ([#3809][gh3809])

  • Избегайте обновлений Meta.extra_kwargs. Спасибо Кевину Мэсси за сообщение и исправление. ([#3805][gh3805], [#3804][gh3804])

  • Исправление некорректного отображения вложенной ошибки валидации. Спасибо Крейгу де Стигтеру за исправление. ([#3801][gh3801])

  • Документ о том, как избежать проблем с CSRF и отсутствующей кнопкой django-crispy-forms. Спасибо Emmanuelle Delescolle, José Padilla и Luis San Pablo за отчет, анализ и исправление. ([#3787][gh3787], [#3636][gh3636], [#3637][gh3637])

  • Улучшение времени установки файла Rest Framework Settings. Спасибо Miles Hutson за отчет и Mads Jensen за исправление. ([#3786][gh3786], [#3815][gh3815])

  • Улучшение совместимости authtoken с Django 1.9. Спасибо S. Andrew Sheppard за исправление. ([#3785][gh3785])

  • Исправьте передачу Min/MaxValueValidator из DecimalField модели. Спасибо Кевину Брауну за исправление. ([#3774][gh3774])

  • Улучшение HTML-заголовка в Browsable API. Спасибо Майку Лисснеру за отчет и исправление. ([#3769][gh3769])

  • Исправьте AutoFilterSet для наследования от default_filter_set. Спасибо Тому Линфорду за исправление. ([#3753][gh3753])

  • Исправьте конфигурацию transifex для работы с новыми кодами китайского языка. Спасибо @nypisces за отчет и исправление. ([#3739][gh3739])

  • DateTimeField некорректно обрабатывает пустые значения. Спасибо Мику Паркеру за сообщение и исправление. ([#3731][gh3731], [#3726][gh3728])

  • Возникновение ошибки при установке удаленного параметра rest_framework. Спасибо Луису Сан-Пабло за исправление. ([#3715][gh3715])

  • Добавьте отсутствующий csrf_token в пост-форме AdminRenderer. Спасибо Piotr Śniegowski за исправление. ([#3703][gh3703])

  • Переработано _get_reverse_relationships() для использования правильного to_field. Спасибо Бенджамину Филлипсу за исправление. ([#3696][gh3696])

  • Документируйте использование get_queryset для RelatedField. Спасибо Райану Хиберту за исправление. ([#3605][gh3605])

  • Исправьте определение пустого pk в HyperlinkRelatedField.get_url. Спасибо @jslang за исправление ([#3962][gh3962])

3.3.2

Дата : 14th December 2015.

  • ListField заставляет входные данные быть списком. ([#3513][gh3513])

  • Исправьте регрессию, скрывающую форму сырых данных. ([#3600][gh3600], [#3578][gh3578])

  • Исправьте совместимость с Python 3.5. ([#3534][gh3534], [#3626][gh3626])

  • Разрешить установку пользовательского Django Paginator в pagination.PageNumberPagination. ([#3631][gh3631], [#3684][gh3684])

  • Исправьте реляционные поля без атрибута to_fields. ([#3635][gh3635], [#3634][gh3634])

  • Исправьте предупреждения о депривации template.render для Django 1.9. ([#3654][gh3654])

  • Сортировка заголовков ответа в просматриваемом рендере API. ([#3655][gh3655])

  • Используйте related_objects api для Django 1.9+. ([#3656][gh3656], [#3252][gh3252])

  • Добавьте модальное окно подтверждения при удалении. ([#3228][gh3228], [#3662][gh3662])

  • Выявление ранее скрытых ошибок AttributeErrors и TypeErrors при вызове has** [object* ]разрешений. ([#3668][gh3668])

  • Сделайте DRF совместимым с мультишаблонным движком в Django 1.8. ([#3672][gh3672])

  • Обновите NestedBoundField для обработки пустой строки при выводе ее формы. ([#3677][gh3677])

  • Исправьте проверку UUID, чтобы правильно отлавливать недопустимые типы ввода. ([#3687][gh3687], [#3679][gh3679])

  • Исправьте проблемы с кэшированием. ([#3628][gh3628], [#3701][gh3701])

  • Исправьте браузер Admin и API для представлений без filter_class. ([#3705][gh3705], [#3596][gh3596], [#3597][gh3597])

  • Добавьте имя_приложения в rest_framework.urls. ([#3714][gh3714])

  • Улучшите представления authtoken для поддержки версионности url. ([#3718][gh3718], [#3723][gh3723])

3.3.1

Дата : 4th November 2015.

  • Устранение ошибки разбора при обращении к request.POST ([#3592][gh3592])

  • Правильное решение проблемы с to_field, относящейся к первичному ключу. ([#3593][gh3593])

  • Разрешить отрисовку HTML фильтра, если не определено filter_class. ([#3560][gh3560])

  • Исправьте проблемы с рендерингом админки. ([#3564][gh3564], [#3556][gh3556])

  • Исправьте проблему с DecimalValidator. ([#3568][gh3568])

3.3.0

Дата : 28th October 2015.

  • Элементы управления HTML для фильтров. ([#3315][gh3315])

  • Формы API. ([#3475][gh3475])

  • API с возможностью просмотра AJAX. ([#3410][gh3410])

  • Добавлено поле JSONField. ([#3454][gh3454])

  • Корректное отображение to_field при создании реляционных полей ModelSerializer. ([#3526][gh3526])

  • Включите аргументы ключевых слов при отображении FilePathField на поле сериализатора. ([#3536][gh3536])

  • Составьте карту соответствующей модели error_messages на ModelSerializer ограничения уникальности. ([#3435][gh3435])

  • Включите ограничение max_length для полей ModelSerializer, отображаемых из TextField. ([#3509][gh3509])

  • Добавлена поддержка Django 1.9. ([#3450][gh3450], [#3525][gh3525])

  • Удалена поддержка Django 1.5 и 1.6. ([#3421][gh3421], [#3429][gh3429])

  • Удалены «южные» миграции. ([#3495][gh3495])


Серия 3.2.x

3.2.5

Дата : 27th October 2015.

  • Эскейп username в необязательном теге выхода из системы. ([#3550][gh3550])

3.2.4

Дата : 21th September 2015.

  • Не допускайте ошибок при отсутствии атрибута ViewSet.search_fields. ([#3324][gh3324], [#3323][gh3323])

  • Исправьте allow_empty, не работающий на сериализаторах с many=True. ([#3361][gh3361], [#3364][gh3364])

  • Пусть DurationField принимает целые числа. ([#3359][gh3359])

  • Многоуровневые словари не поддерживаются в многокомпонентных запросах. ([#3314][gh3314])

  • Исправьте усечение ListField при HTTP PATCH ([#3415][gh3415], [#2761][gh2761])

3.2.3

Дата : 24th August 2015.

  • Добавлены html_cutoff и html_cutoff_text для ограничения выпадающих списков выбора. ([#3313][gh3313])

  • Добавлен стиль regex для SearchFilter. ([#3316][gh3316])

  • Устранение проблем с установкой пустых HTML-полей. ([#3318][gh3318]) ([#3321][gh3321])

  • Корректное отображение существующих значений „select multiple“ в просматриваемых формах API. ([#3290][gh3290])

  • Устранение дублирующегося сообщения о проверке для IPAddressField. ([#3249[gh3249]) ([#3250][gh3250])

  • Исправление для обеспечения работы рендеринга администратора при отключенной пагинации. ([#3275][gh3275])

  • Решить ошибку с LimitOffsetPagination при count=0, offset=0. ([#3303][gh3303])

3.2.2

Дата : 13th August 2015.

  • Добавьте метод display_value() для использования при отображении входов выбора реляционного поля. ([#3254][gh3254])

  • Исправление проблемы, когда флажки BooleanField некорректно отображались как отмеченные. ([#3258][gh3258])

  • Убедитесь, что пустые флажки правильно устанавливают BooleanField в False во всех случаях. ([#2776][gh2776])

  • Разрешить свойство WSGIRequest.FILES без возникновения некорректной ошибки deprecated. ([#3261][gh3261])

  • Решите проблему с отображением вложенных сериализаторов в формах. ([#3260][gh3260])

  • Вызывает ошибку, если пользователь случайно передает в ответ экземпляр сериализатора, а не данные. ([#3241][gh3241])

3.2.1

Дата : 7th August 2015.

  • Исправление отображения виджетов реляционного выбора без выбора. ([#3237][gh3237])

  • Исправление того, что 1 , 0 отображались как true , false в интерфейсе администратора. [#3227][gh3227])

  • Исправление для полей ListFields с одним значением в HTML-форме ввода. ([#3238][gh3238])

  • Разрешите request.FILES для совместимости с классом HTTPRequest в Django. ([#3239][gh3239])

3.2.0

Дата : 6th August 2015.

  • Добавить AdminRenderer. ([#2926][gh2926])

  • Добавить FilePathField. ([#1854][gh1854])

  • Добавьте allow_empty к ListField. ([#2250][gh2250])

  • Поддержка django-guardian 1.3. ([#3165][gh3165])

  • Поддержка сгруппированных вариантов. ([#3225][gh3225])

  • Поддержка форм ошибок в просматриваемом API. ([#3024][gh3024])

  • Разрешите классам прав настраивать сообщение об ошибке. ([#2539][gh2539])

  • Поддержка source=<method> в полях с гиперссылками. ([#2690][gh2690])

  • ListField(allow_null=True) теперь позволяет использовать null в качестве значения списка, а не нулевые элементы в списке. ([#2766][gh2766])

  • ManyToMany() отображается на allow_empty=False , ManyToMany(blank=True) отображается на allow_empty=True. ([#2804][gh2804])

  • Поддержка пользовательских стилей сериализации для полей первичного ключа. ([#2789][gh2789])

  • OPTIONS запросы поддерживают вложенные представления. ([#2915][gh2915])

  • Установите view.action == "metadata" для наборов просмотров с OPTIONS запросами. ([#3115][gh3115])

  • Поддержка allow_blank на UUIDField. ([#3130][gh#3130])

  • Не отображать докстринги представления с кодами ответа 401 или 403. ([#3216][gh3216])

  • Устранение предупреждений об устаревании Django 1.8. ([#2886][gh2886])

  • Исправление для валидации DecimalField. ([#3139][gh3139])

  • Исправьте поведение allow_blank=False при использовании trim_whitespace=True. ([#2712][gh2712])

  • Исправление проблемы, когда некоторые комбинации полей неправильно отображались на недопустимый аргумент allow_blank. ([#3011][gh3011])

  • Исправление для выходных представлений с префетчами и модифицированными кверисетами. ([#2704][gh2704], [#2727][gh2727])

  • Исправьте ошибку утверждения, когда CursorPagination предоставляется с некоторыми недопустимыми параметрами запроса. (#2920)[gh2920].

  • Исправьте UnicodeDecodeError, когда недопустимые символы включены в заголовок с TokenAuthentication. ([#2928][gh2928])

  • Исправьте откат транзакций с помощью декоратора @non_atomic_requests. ([#3016][gh3016])

  • Исправьте проблему дублирования результатов в базах данных Oracle, использующих SearchFilter. ([#2935][gh2935])

  • Исправьте выравнивание и рендеринг чекбоксов в просматриваемых формах API. ([#2783][gh2783])

  • Исправление для несохраненных объектов файлов, которые должны использовать "url": null в представлении. ([#2759][gh2759])

  • Исправьте рендеринг значений полей в API с возможностью просмотра. ([#2416][gh2416])

  • Исправьте HStoreField для включения allow_blank=True в отображение DictField. ([#2659][gh2659])

  • Многочисленные другие исправления, улучшения в сообщениях об ошибках, приватном API и мелкие исправления.


Серия 3.1.x

3.1.3

Дата : 4th June 2015.

  • Добавить DurationField. ([#2481][gh2481], [#2989][gh2989])

  • Добавьте аргумент format к UUIDField. ([#2788][gh2788], [#3000][gh3000])

  • MultipleChoiceField некорректное опустошение при частичном обновлении с использованием multipart/form-data ([#2993][gh2993], [#2894][gh2894])

  • Исправьте ошибку в опциях, связанных с read-only RelatedField. ([#2981][gh2981], [#2811][gh2811])

  • Исправьте вложенные сериализаторы с отношениями unique_together. ([#2975][gh2975])

  • Разрешить неожиданные значения для представлений ChoiceField /** MultipleChoiceField. ([#2839][gh2839], [#2940][gh2940])

  • Откат транзакции при ошибке, если установлено значение ATOMIC_REQUESTS. ([#2887][gh2887], [#2034][gh2034])

  • Устанавливает действие над представлением при override_method независимо от его None-ness. ([#2933][gh2933])

  • DecimalField принимает 2E+2 как 200 и правильно проверяет десятичный знак. ([#2948][gh2948], [#2947][gh2947])

  • Поддержка базовой аутентификации с пользовательскими UserModel, которые изменяют username. ([#2952][gh2952])

  • IPAddressField улучшения. ([#2747][gh2747], [#2618][gh2618], [#3008][gh3008])

  • Улучшите DecimalField для упрощения подклассификации. ([#2695][gh2695])

3.1.2

Дата : 13rd May 2015.

  • DateField.to_representation может обрабатывать str и пустые значения. ([#2656][gh2656], [#2687][gh2687], [#2869][gh2869])

  • Используйте фразы причины по умолчанию из стандарта HTTP. ([#2764][gh2764], [#2763][gh2763])

  • Вызывать ошибку, когда ModelSerializer используется с абстрактной моделью. ([#2757][gh2757], [#2630][gh2630])

  • Обработка обратного изменения неAPI view_name в HyperLinkedRelatedField ([#2724][gh2724], [#2711][gh2711])

  • Не требуйте пк строго для смежных областей. ([#2745][gh2745], [#2754][gh2754])

  • Метаданные обнаруживают нулевой тип поля boolean. ([#2762][gh2762])

  • Правильная обработка глубины во вложенных сериализаторах. ([#2798][gh2798])

  • Отображение набора представлений без пагинатора. ([#2807][gh2807])

  • Не проверяйте наличие устаревшего атрибута .model в разрешениях ([#2818][gh2818])

  • Ограничьте целочисленное поле целыми числами и строками. ([#2835][gh2835], [#2836][gh2836])

  • Улучшите IntegerField для использования скомпилированного десятичного regex. ([#2853][gh2853])

  • Запретите пустым queryset вызывать AssertionError. ([#2862][gh2862])

  • DjangoModelPermissions полагайтесь на get_queryset. ([#2863][gh2863])

  • Проверьте AcceptHeaderVersioning при наличии согласования содержимого. ([#2868][gh2868])

  • Разрешите DjangoObjectPermissions использовать представления, определяющие get_queryset. ([#2905][gh2905])

3.1.1

Дата : 23rd March 2015.

  • Исправление безопасности: Escape tab переключения имени cookie в просматриваемом API.

  • Отображение форм ввода в просматриваемом API, если используется serializer_class, даже если метод get_serializer не существует в представлении. ([#2743][gh2743])

  • Используйте ввод пароля для AuthTokenSerializer. ([#2741][gh2741])

  • Исправьте отсутствие закрывающего тега якоря после кнопки next. ([#2691][gh2691])

  • Исправьте обработку lookup_url_kwarg в наборах представлений. ([#2685][gh2685], [#2591][gh2591])

  • Исправьте проблему с импортом rest_framework.views в apps.py ([#2678][gh2678])

  • LimitOffsetPagination повышает TypeError если PAGE_SIZE не установлен ([#2667][gh2667], [#2700][gh2700])

  • Немецкий перевод для сообщений об ошибке поля min_value ссылки max_value. ([#2645][gh2645])

  • Удалить MergeDict. ([#2640][gh2640])

  • Поддержка сериализации несохраненных моделей со связанными полями. ([#2637][gh2637], [#2641][gh2641])

  • Разрешить пустые/нулевые значения для вариантов radio.html. ([#2631][gh2631])

3.1.0

Дата : 5th March 2015.

Более подробную информацию можно найти в разделе 3.1 release announcement.


Серия 3.0.x

3.0.5

Дата : 10th February 2015.

  • Исправьте ошибку, при которой _closable_objects нарушало пикировку. ([#1850][gh1850], [#2492][gh2492])

  • Разрешить нестандартные модели User с Throttling. ([#2524][gh2524])

  • Поддержка пользовательского User.db_table в миграции TokenAuthentication. ([#2479][gh2479])

  • Исправьте вводящие в заблуждение AttributeError трассировки на Request объектах. ([#2530][gh2530], [#2108][gh2108])

  • ManyRelatedField.get_value очистка поля при частичном обновлении. ([#2475][gh2475])

  • Удален ярлык „.model“ из кода. ([#2486][gh2486])

  • Исправьте detail_route и list_route мутабельный аргумент. ([#2518][gh2518])

  • Предварительная выборка объекта пользователя при получении токена в TokenAuthentication. ([#2519][gh2519])

3.0.4

Дата : 28th January 2015.

  • Поддержка Django 1.8a1. ([#2425][gh2425], [#2446][gh2446], [#2441][gh2441])

  • Добавьте DictField и поддержите Django 1.8 HStoreField. ([#2451][gh2451], [#2106][gh2106])

  • Добавьте UUIDField и поддержите Django 1.8 UUIDField. ([#2448][gh2448], [#2433][gh2433], [#2432][gh2432])

  • BaseRenderer.render теперь повышает NotImplementedError. ([#2434][gh2434])

  • Исправьте сериализацию timedelta JSON на Python 2.6. ([#2430][gh2430])

  • ResultDict и ResultList теперь отображаются как стандартный диктант/список. ([#2421][gh2421])

  • Исправьте видимый HiddenField в HTML-форме просматриваемой веб-страницы API. ([#2410][gh2410])

  • Используйте OrderedDict для RelatedField.choices. ([#2408][gh2408])

  • Исправьте формат идентификатора при использовании HTTP_X_FORWARDED_FOR. ([#2401][gh2401])

  • Исправьте недействительный ключ в memcached при использовании дросселирования. ([#2400][gh2400])

  • Исправьте FileUploadParser с версией 3.x. ([#2399][gh2399])

  • Исправьте наследование сериализатора. ([#2388][gh2388])

  • Исправьте проблемы с кэшированием ReturnDict. ([#2360][gh2360])

3.0.3

Дата : 8th January 2015.

  • Исправьте MinValueValidator на models.DateField. ([#2369][gh2369])

  • Исправление отсутствия контекста в сериализаторе при использовании пагинации. ([#2355][gh2355])

  • URL маршрутизаторов с именами теперь поддерживаются DefaultRouter. ([#2351][gh2351])

  • required=False позволяет не указывать значение для вывода. ([#2342][gh2342])

  • Используйте ввод текстовой области для models.TextField. ([#2340][gh2340])

  • При необходимости используйте пользовательские ListSerializer для пагинации. ([#2331][gh2331], [#2327][gh2327])

  • Улучшено поведение с null и „“ для пустых HTML-полей. ([#2330][gh2330])

  • Убедитесь, что поля в exclude являются полями модели. ([#2319][gh2319])

  • Исправьте несовместимость аргументов IntegerField и max_length. ([#2317][gh2317])

  • Исправьте кодировщик YAML для сериализаторов 3.0. ([#2315][gh2315], [#2283][gh2283])

  • Исправьте поведение пустых HTML-полей. ([#2311][gh2311], [#1101][gh1101])

  • Исправьте глубину атрибута Metaclass, игнорирующую атрибут fields. ([#2287][gh2287])

  • Исправьте format_suffix_patterns для работы с i18n_patterns от Django. ([#2278][gh2278])

  • Возможность настраивать URL маршрутизатора для пользовательских действий, используя url_path. ([#2010][gh2010])

  • Не устанавливайте Django REST Framework как яйцо. ([#2386][gh2386])

3.0.2

Дата : 17th December 2014.

  • Обеспечьте доступность request.user для промежуточного ПО ответа. ([#2155][gh2155])

  • Client.logout() также отменяет все существующие force_authenticate. ([#2218][gh2218], [#2259][gh2259])

  • Дополнительные утверждения и улучшенные проверки для предотвращения неправильного использования API сериализатора. ([#2228][gh2228], [#2234][gh2234], [#2262][gh2262], [#2263][gh2263], [#2266][gh2266], [#2267][gh2267], [#2289][gh2289], [#2291][gh2291])

  • Исправлено сообщение min_length для CharField. ([#2255][gh2255])

  • Исправление UnicodeDecodeError , которое может возникнуть на сериализаторе repr. ([#2270][gh2270], [#2279][gh2279])

  • Исправьте пустые значения HTML, когда указано значение по умолчанию. ([#2280][gh2280], [#2294][gh2294])

  • Исправьте SlugRelatedField, повышающий UnicodeEncodeError при использовании в качестве ввода множественного выбора. ([#2290][gh2290])

3.0.1

Дата : 11th December 2014.

  • Более полезное сообщение об ошибке, когда стандартный сериализатор create() не работает. ([#2013][gh2013])

  • Вызывать ошибку при попытке сохранить сериализатор, если данные не действительны. ([#2098][gh2098])

  • Исправление ошибок FileUploadParser при пустых именах файлов и нескольких обработчиках загрузки. ([#2109][gh2109])

  • Улучшите BindingDict для поддержки стандартных dict-функций. ([#2135][gh2135], [#2163][gh2163])

  • Добавьте validate() к ListSerializer. ([#2168][gh2168], [#2225][gh2225], [#2232][gh2232])

  • Исправьте ошибку рендеринга JSONP, когда некоторые символы не экранируются. ([#2169][gh2169], [#2195][gh2195])

  • Добавьте недостающий стиль по умолчанию для FileField. ([#2172][gh2172])

  • Действия требуются при вызове ViewSet.as_view(). ([#2175][gh2175])

  • Добавьте allow_blank к ChoiceField. ([#2184][gh2184], [#2239][gh2239])

  • Косметические исправления в рендере HTML. ([#2187][gh2187])

  • Вызывать ошибку, если fields на сериализаторе не является списком строк. ([#2193][gh2193], [#2213][gh2213])

  • Улучшение проверки вложенных созданий и обновлений. ([#2194][gh2194], [#2196][gh2196])

  • Аргумент validated_attrs переименован в validated_data в Serializer create() /** update(). ([#2197][gh2197])

  • Удалите устаревший код, чтобы отразить отмененные версии Django. ([#2200][gh2200])

  • Улучшение ошибок сериализатора для вложенных записей. ([#2202][gh2202], [#2215][gh2215])

  • Исправьте несовместимость пагинации и пользовательских разрешений. ([#2205][gh2205])

  • Вызывать ошибку, если fields на сериализаторе не является списком строк. ([#2213][gh2213])

  • Добавьте отсутствующие маркеры перевода для реляционных полей. ([#2231][gh2231])

  • Улучшите поведение поиска полей для dicts/mappings. ([#2244][gh2244], [#2243][gh2243])

  • Оптимизированная гиперссылка PK. ([#2242][gh2242])

3.0.0

Дата: 1 декабря 2014 г.

Более подробную информацию можно найти в разделе 3.0 release announcement.


Для более ранних выпусков please see the version 2.x documentation.

[gh2013]: https://github.com/encode/django-rest-framework/issues/2013 [gh2098]: https://github.com/encode/django-rest-framework/issues/2098 [gh2109]: https://github.com/encode/django-rest-framework/issues/2109 [gh2135]: https://github.com/encode/django-rest-framework/issues/2135 [gh2163]: https://github.com/encode/django-rest-framework/issues/2163 [gh2168]: https://github.com/encode/django-rest-framework/issues/2168 [gh2169]: https://github.com/encode/django-rest-framework/issues/2169 [gh2172]: https://github.com/encode/django-rest-framework/issues/2172 [gh2175]: https://github.com/encode/django-rest-framework/issues/2175 [gh2184]: https://github.com/encode/django-rest-framework/issues/2184 [gh2187]: https://github.com/encode/django-rest-framework/issues/2187 [gh2193]: https://github.com/encode/django-rest-framework/issues/2193 [gh2194]: https://github.com/encode/django-rest-framework/issues/2194 [gh2195]: https://github.com/encode/django-rest-framework/issues/2195 [gh2196]: https://github.com/encode/django-rest-framework/issues/2196 [gh2197]: https://github.com/encode/django-rest-framework/issues/2197 [gh2200]: https://github.com/encode/django-rest-framework/issues/2200 [gh2202]: https://github.com/encode/django-rest-framework/issues/2202 [gh2205]: https://github.com/encode/django-rest-framework/issues/2205 [gh2213]: https://github.com/encode/django-rest-framework/issues/2213 [gh2213]: https://github.com/encode/django-rest-framework/issues/2213 [gh2215]: https://github.com/encode/django-rest-framework/issues/2215 [gh2225]: https://github.com/encode/django-rest-framework/issues/2225 [gh2231]: https://github.com/encode/django-rest-framework/issues/2231 [gh2232]: https://github.com/encode/django-rest-framework/issues/2232 [gh2239]: https://github.com/encode/django-rest-framework/issues/2239 [gh2242]: https://github.com/encode/django-rest-framework/issues/2242 [gh2243]: https://github.com/encode/django-rest-framework/issues/2243 [gh2244]: https://github.com/encode/django-rest-framework/issues/2244 [gh2155]: https://github.com/encode/django-rest-framework/issues/2155 [gh2218]: https://github.com/encode/django-rest-framework/issues/2218 [gh2228]: https://github.com/encode/django-rest-framework/issues/2228 [gh2234]: https://github.com/encode/django-rest-framework/issues/2234 [gh2255]: https://github.com/encode/django-rest-framework/issues/2255 [gh2259]: https://github.com/encode/django-rest-framework/issues/2259 [gh2262]: https://github.com/encode/django-rest-framework/issues/2262 [gh2263]: https://github.com/encode/django-rest-framework/issues/2263 [gh2266]: https://github.com/encode/django-rest-framework/issues/2266 [gh2267]: https://github.com/encode/django-rest-framework/issues/2267 [gh2270]: https://github.com/encode/django-rest-framework/issues/2270 [gh2279]: https://github.com/encode/django-rest-framework/issues/2279 [gh2280]: https://github.com/encode/django-rest-framework/issues/2280 [gh2289]: https://github.com/encode/django-rest-framework/issues/2289 [gh2290]: https://github.com/encode/django-rest-framework/issues/2290 [gh2291]: https://github.com/encode/django-rest-framework/issues/2291 [gh2294]: https://github.com/encode/django-rest-framework/issues/2294 [gh1101]: https://github.com/encode/django-rest-framework/issues/1101 [gh2010]: https://github.com/encode/django-rest-framework/issues/2010 [gh2278]: https://github.com/encode/django-rest-framework/issues/2278 [gh2283]: https://github.com/encode/django-rest-framework/issues/2283 [gh2287]: https://github.com/encode/django-rest-framework/issues/2287 [gh2311]: https://github.com/encode/django-rest-framework/issues/2311 [gh2315]: https://github.com/encode/django-rest-framework/issues/2315 [gh2317]: https://github.com/encode/django-rest-framework/issues/2317 [gh2319]: https://github.com/encode/django-rest-framework/issues/2319 [gh2327]: https://github.com/encode/django-rest-framework/issues/2327 [gh2330]: https://github.com/encode/django-rest-framework/issues/2330 [gh2331]: https://github.com/encode/django-rest-framework/issues/2331 [gh2340]: https://github.com/encode/django-rest-framework/issues/2340 [gh2342]: https://github.com/encode/django-rest-framework/issues/2342 [gh2351]: https://github.com/encode/django-rest-framework/issues/2351 [gh2355]: https://github.com/encode/django-rest-framework/issues/2355 [gh2369]: https://github.com/encode/django-rest-framework/issues/2369 [gh2386]: https://github.com/encode/django-rest-framework/issues/2386 [gh2425]: https://github.com/encode/django-rest-framework/issues/2425 [gh2446]: https://github.com/encode/django-rest-framework/issues/2446 [gh2441]: https://github.com/encode/django-rest-framework/issues/2441 [gh2451]: https://github.com/encode/django-rest-framework/issues/2451 [gh2106]: https://github.com/encode/django-rest-framework/issues/2106 [gh2448]: https://github.com/encode/django-rest-framework/issues/2448 [gh2433]: https://github.com/encode/django-rest-framework/issues/2433 [gh2432]: https://github.com/encode/django-rest-framework/issues/2432 [gh2434]: https://github.com/encode/django-rest-framework/issues/2434 [gh2430]: https://github.com/encode/django-rest-framework/issues/2430 [gh2421]: https://github.com/encode/django-rest-framework/issues/2421 [gh2410]: https://github.com/encode/django-rest-framework/issues/2410 [gh2408]: https://github.com/encode/django-rest-framework/issues/2408 [gh2401]: https://github.com/encode/django-rest-framework/issues/2401 [gh2400]: https://github.com/encode/django-rest-framework/issues/2400 [gh2399]: https://github.com/encode/django-rest-framework/issues/2399 [gh2388]: https://github.com/encode/django-rest-framework/issues/2388 [gh2360]: https://github.com/encode/django-rest-framework/issues/2360 [gh1850]: https://github.com/encode/django-rest-framework/issues/1850 [gh2108]: https://github.com/encode/django-rest-framework/issues/2108 [gh2475]: https://github.com/encode/django-rest-framework/issues/2475 [gh2479]: https://github.com/encode/django-rest-framework/issues/2479 [gh2486]: https://github.com/encode/django-rest-framework/issues/2486 [gh2492]: https://github.com/encode/django-rest-framework/issues/2492 [gh2518]: https://github.com/encode/django-rest-framework/issues/2518 [gh2519]: https://github.com/encode/django-rest-framework/issues/2519 [gh2524]: https://github.com/encode/django-rest-framework/issues/2524 [gh2530]: https://github.com/encode/django-rest-framework/issues/2530 [gh2691]: https://github.com/encode/django-rest-framework/issues/2691 [gh2685]: https://github.com/encode/django-rest-framework/issues/2685 [gh2591]: https://github.com/encode/django-rest-framework/issues/2591 [gh2678]: https://github.com/encode/django-rest-framework/issues/2678 [gh2667]: https://github.com/encode/django-rest-framework/issues/2667 [gh2700]: https://github.com/encode/django-rest-framework/issues/2700 [gh2645]: https://github.com/encode/django-rest-framework/issues/2645 [gh2640]: https://github.com/encode/django-rest-framework/issues/2640 [gh2637]: https://github.com/encode/django-rest-framework/issues/2637 [gh2641]: https://github.com/encode/django-rest-framework/issues/2641 [gh2631]: https://github.com/encode/django-rest-framework/issues/2631 [gh2741]: https://github.com/encode/django-rest-framework/issues/2641 [gh2743]: https://github.com/encode/django-rest-framework/issues/2643 [gh2656]: https://github.com/encode/django-rest-framework/issues/2656 [gh2687]: https://github.com/encode/django-rest-framework/issues/2687 [gh2869]: https://github.com/encode/django-rest-framework/issues/2869 [gh2764]: https://github.com/encode/django-rest-framework/issues/2764 [gh2763]: https://github.com/encode/django-rest-framework/issues/2763 [gh2757]: https://github.com/encode/django-rest-framework/issues/2757 [gh2630]: https://github.com/encode/django-rest-framework/issues/2630 [gh2724]: https://github.com/encode/django-rest-framework/issues/2724 [gh2711]: https://github.com/encode/django-rest-framework/issues/2711 [gh2745]: https://github.com/encode/django-rest-framework/issues/2745 [gh2754]: https://github.com/encode/django-rest-framework/issues/2754 [gh2762]: https://github.com/encode/django-rest-framework/issues/2762 [gh2798]: https://github.com/encode/django-rest-framework/issues/2798 [gh2807]: https://github.com/encode/django-rest-framework/issues/2807 [gh2818]: https://github.com/encode/django-rest-framework/issues/2818 [gh2835]: https://github.com/encode/django-rest-framework/issues/2835 [gh2836]: https://github.com/encode/django-rest-framework/issues/2836 [gh2853]: https://github.com/encode/django-rest-framework/issues/2853 [gh2862]: https://github.com/encode/django-rest-framework/issues/2862 [gh2863]: https://github.com/encode/django-rest-framework/issues/2863 [gh2868]: https://github.com/encode/django-rest-framework/issues/2868 [gh2905]: https://github.com/encode/django-rest-framework/issues/2905 [gh2481]: https://github.com/encode/django-rest-framework/issues/2481 [gh2989]: https://github.com/encode/django-rest-framework/issues/2989 [gh2788]: https://github.com/encode/django-rest-framework/issues/2788 [gh3000]: https://github.com/encode/django-rest-framework/issues/3000 [gh2993]: https://github.com/encode/django-rest-framework/issues/2993 [gh2894]: https://github.com/encode/django-rest-framework/issues/2894 [gh2981]: https://github.com/encode/django-rest-framework/issues/2981 [gh2811]: https://github.com/encode/django-rest-framework/issues/2811 [gh2975]: https://github.com/encode/django-rest-framework/issues/2975 [gh2839]: https://github.com/encode/django-rest-framework/issues/2839 [gh2940]: https://github.com/encode/django-rest-framework/issues/2940 [gh2887]: https://github.com/encode/django-rest-framework/issues/2887 [gh2034]: https://github.com/encode/django-rest-framework/issues/2034 [gh2933]: https://github.com/encode/django-rest-framework/issues/2933 [gh2948]: https://github.com/encode/django-rest-framework/issues/2948 [gh2947]: https://github.com/encode/django-rest-framework/issues/2947 [gh2952]: https://github.com/encode/django-rest-framework/issues/2952 [gh2747]: https://github.com/encode/django-rest-framework/issues/2747 [gh2618]: https://github.com/encode/django-rest-framework/issues/2618 [gh3008]: https://github.com/encode/django-rest-framework/issues/3008 [gh2695]: https://github.com/encode/django-rest-framework/issues/2695 [gh1854]: https://github.com/encode/django-rest-framework/issues/1854 [gh2250]: https://github.com/encode/django-rest-framework/issues/2250 [gh2416]: https://github.com/encode/django-rest-framework/issues/2416 [gh2539]: https://github.com/encode/django-rest-framework/issues/2539 [gh2659]: https://github.com/encode/django-rest-framework/issues/2659 [gh2690]: https://github.com/encode/django-rest-framework/issues/2690 [gh2704]: https://github.com/encode/django-rest-framework/issues/2704 [gh2712]: https://github.com/encode/django-rest-framework/issues/2712 [gh2727]: https://github.com/encode/django-rest-framework/issues/2727 [gh2759]: https://github.com/encode/django-rest-framework/issues/2759 [gh2766]: https://github.com/encode/django-rest-framework/issues/2766 [gh2783]: https://github.com/encode/django-rest-framework/issues/2783 [gh2789]: https://github.com/encode/django-rest-framework/issues/2789 [gh2804]: https://github.com/encode/django-rest-framework/issues/2804 [gh2886]: https://github.com/encode/django-rest-framework/issues/2886 [gh2915]: https://github.com/encode/django-rest-framework/issues/2915 [gh2920]: https://github.com/encode/django-rest-framework/issues/2920 [gh2926]: https://github.com/encode/django-rest-framework/issues/2926 [gh2928]: https://github.com/encode/django-rest-framework/issues/2928 [gh2935]: https://github.com/encode/django-rest-framework/issues/2935 [gh3011]: https://github.com/encode/django-rest-framework/issues/3011 [gh3016]: https://github.com/encode/django-rest-framework/issues/3016 [gh3024]: https://github.com/encode/django-rest-framework/issues/3024 [gh3115]: https://github.com/encode/django-rest-framework/issues/3115 [gh3139]: https://github.com/encode/django-rest-framework/issues/3139 [gh3165]: https://github.com/encode/django-rest-framework/issues/3165 [gh3216]: https://github.com/encode/django-rest-framework/issues/3216 [gh3225]: https://github.com/encode/django-rest-framework/issues/3225 [gh3237]: https://github.com/encode/django-rest-framework/issues/3237 [gh3227]: https://github.com/encode/django-rest-framework/issues/3227 [gh3238]: https://github.com/encode/django-rest-framework/issues/3238 [gh3239]: https://github.com/encode/django-rest-framework/issues/3239 [gh3254]: https://github.com/encode/django-rest-framework/issues/3254 [gh3258]: https://github.com/encode/django-rest-framework/issues/3258 [gh2776]: https://github.com/encode/django-rest-framework/issues/2776 [gh3261]: https://github.com/encode/django-rest-framework/issues/3261 [gh3260]: https://github.com/encode/django-rest-framework/issues/3260 [gh3241]: https://github.com/encode/django-rest-framework/issues/3241 [gh3249]: https://github.com/encode/django-rest-framework/issues/3249 [gh3250]: https://github.com/encode/django-rest-framework/issues/3250 [gh3275]: https://github.com/encode/django-rest-framework/issues/3275 [gh3290]: https://github.com/encode/django-rest-framework/issues/3290 [gh3303]: https://github.com/encode/django-rest-framework/issues/3303 [gh3313]: https://github.com/encode/django-rest-framework/issues/3313 [gh3316]: https://github.com/encode/django-rest-framework/issues/3316 [gh3318]: https://github.com/encode/django-rest-framework/issues/3318 [gh3321]: https://github.com/encode/django-rest-framework/issues/3321 [gh2761]: https://github.com/encode/django-rest-framework/issues/2761 [gh3314]: https://github.com/encode/django-rest-framework/issues/3314 [gh3323]: https://github.com/encode/django-rest-framework/issues/3323 [gh3324]: https://github.com/encode/django-rest-framework/issues/3324 [gh3359]: https://github.com/encode/django-rest-framework/issues/3359 [gh3361]: https://github.com/encode/django-rest-framework/issues/3361 [gh3364]: https://github.com/encode/django-rest-framework/issues/3364 [gh3415]: https://github.com/encode/django-rest-framework/issues/3415 [gh3550]:https://github.com/encode/django-rest-framework/issues/3550 [gh3315]: https://github.com/encode/django-rest-framework/issues/3315 [gh3410]: https://github.com/encode/django-rest-framework/issues/3410 [gh3435]: https://github.com/encode/django-rest-framework/issues/3435 [gh3450]: https://github.com/encode/django-rest-framework/issues/3450 [gh3454]: https://github.com/encode/django-rest-framework/issues/3454 [gh3475]: https://github.com/encode/django-rest-framework/issues/3475 [gh3495]: https://github.com/encode/django-rest-framework/issues/3495 [gh3509]: https://github.com/encode/django-rest-framework/issues/3509 [gh3421]: https://github.com/encode/django-rest-framework/issues/3421 [gh3525]: https://github.com/encode/django-rest-framework/issues/3525 [gh3526]: https://github.com/encode/django-rest-framework/issues/3526 [gh3429]: https://github.com/encode/django-rest-framework/issues/3429 [gh3536]: https://github.com/encode/django-rest-framework/issues/3536 [gh3556]: https://github.com/encode/django-rest-framework/issues/3556 [gh3560]: https://github.com/encode/django-rest-framework/issues/3560 [gh3564]: https://github.com/encode/django-rest-framework/issues/3564 [gh3568]: https://github.com/encode/django-rest-framework/issues/3568 [gh3592]: https://github.com/encode/django-rest-framework/issues/3592 [gh3593]: https://github.com/encode/django-rest-framework/issues/3593 [gh3228]: https://github.com/encode/django-rest-framework/issues/3228 [gh3252]: https://github.com/encode/django-rest-framework/issues/3252 [gh3513]: https://github.com/encode/django-rest-framework/issues/3513 [gh3534]: https://github.com/encode/django-rest-framework/issues/3534 [gh3578]: https://github.com/encode/django-rest-framework/issues/3578 [gh3596]: https://github.com/encode/django-rest-framework/issues/3596 [gh3597]: https://github.com/encode/django-rest-framework/issues/3597 [gh3600]: https://github.com/encode/django-rest-framework/issues/3600 [gh3626]: https://github.com/encode/django-rest-framework/issues/3626 [gh3628]: https://github.com/encode/django-rest-framework/issues/3628 [gh3631]: https://github.com/encode/django-rest-framework/issues/3631 [gh3634]: https://github.com/encode/django-rest-framework/issues/3634 [gh3635]: https://github.com/encode/django-rest-framework/issues/3635 [gh3654]: https://github.com/encode/django-rest-framework/issues/3654 [gh3655]: https://github.com/encode/django-rest-framework/issues/3655 [gh3656]: https://github.com/encode/django-rest-framework/issues/3656 [gh3662]: https://github.com/encode/django-rest-framework/issues/3662 [gh3668]: https://github.com/encode/django-rest-framework/issues/3668 [gh3672]: https://github.com/encode/django-rest-framework/issues/3672 [gh3677]: https://github.com/encode/django-rest-framework/issues/3677 [gh3679]: https://github.com/encode/django-rest-framework/issues/3679 [gh3684]: https://github.com/encode/django-rest-framework/issues/3684 [gh3687]: https://github.com/encode/django-rest-framework/issues/3687 [gh3701]: https://github.com/encode/django-rest-framework/issues/3701 [gh3705]: https://github.com/encode/django-rest-framework/issues/3705 [gh3714]: https://github.com/encode/django-rest-framework/issues/3714 [gh3718]: https://github.com/encode/django-rest-framework/issues/3718 [gh3723]: https://github.com/encode/django-rest-framework/issues/3723 [gh3968]: https://github.com/encode/django-rest-framework/issues/3968 [gh3962]: https://github.com/encode/django-rest-framework/issues/3962 [gh3913]: https://github.com/encode/django-rest-framework/issues/3913 [gh3912]: https://github.com/encode/django-rest-framework/issues/3912 [gh3910]: https://github.com/encode/django-rest-framework/issues/3910 [gh3903]: https://github.com/encode/django-rest-framework/issues/3903 [gh3887]: https://github.com/encode/django-rest-framework/issues/3887 [gh3878]: https://github.com/encode/django-rest-framework/issues/3878 [gh3860]: https://github.com/encode/django-rest-framework/issues/3860 [gh3858]: https://github.com/encode/django-rest-framework/issues/3858 [gh3842]: https://github.com/encode/django-rest-framework/issues/3842 [gh3833]: https://github.com/encode/django-rest-framework/issues/3833 [gh3832]: https://github.com/encode/django-rest-framework/issues/3832 [gh3819]: https://github.com/encode/django-rest-framework/issues/3819 [gh3815]: https://github.com/encode/django-rest-framework/issues/3815 [gh3809]: https://github.com/encode/django-rest-framework/issues/3809 [gh3805]: https://github.com/encode/django-rest-framework/issues/3805 [gh3804]: https://github.com/encode/django-rest-framework/issues/3804 [gh3801]: https://github.com/encode/django-rest-framework/issues/3801 [gh3787]: https://github.com/encode/django-rest-framework/issues/3787 [gh3786]: https://github.com/encode/django-rest-framework/issues/3786 [gh3785]: https://github.com/encode/django-rest-framework/issues/3785 [gh3774]: https://github.com/encode/django-rest-framework/issues/3774 [gh3769]: https://github.com/encode/django-rest-framework/issues/3769 [gh3753]: https://github.com/encode/django-rest-framework/issues/3753 [gh3739]: https://github.com/encode/django-rest-framework/issues/3739 [gh3731]: https://github.com/encode/django-rest-framework/issues/3731 [gh3728]: https://github.com/encode/django-rest-framework/issues/3726 [gh3715]: https://github.com/encode/django-rest-framework/issues/3715 [gh3703]: https://github.com/encode/django-rest-framework/issues/3703 [gh3696]: https://github.com/encode/django-rest-framework/issues/3696 [gh3637]: https://github.com/encode/django-rest-framework/issues/3637 [gh3636]: https://github.com/encode/django-rest-framework/issues/3636 [gh3605]: https://github.com/encode/django-rest-framework/issues/3605 [gh3604]: https://github.com/encode/django-rest-framework/issues/3604 [gh2403]: https://github.com/encode/django-rest-framework/issues/2403 [gh2848]: https://github.com/encode/django-rest-framework/issues/2848 [gh2996]: https://github.com/encode/django-rest-framework/issues/2996 [gh3164]: https://github.com/encode/django-rest-framework/issues/3164 [gh3273]: https://github.com/encode/django-rest-framework/issues/3273 [gh3381]: https://github.com/encode/django-rest-framework/issues/3381 [gh3438]: https://github.com/encode/django-rest-framework/issues/3438 [gh3444]: https://github.com/encode/django-rest-framework/issues/3444 [gh3476]: https://github.com/encode/django-rest-framework/issues/3476 [gh3487]: https://github.com/encode/django-rest-framework/issues/3487 [gh3541]: https://github.com/encode/django-rest-framework/issues/3541 [gh3710]: https://github.com/encode/django-rest-framework/issues/3710 [gh3729]: https://github.com/encode/django-rest-framework/issues/3729 [gh3751]: https://github.com/encode/django-rest-framework/issues/3751 [gh3812]: https://github.com/encode/django-rest-framework/issues/3812 [gh3816]: https://github.com/encode/django-rest-framework/issues/3816 [gh3820]: https://github.com/encode/django-rest-framework/issues/3820 [gh3906]: https://github.com/encode/django-rest-framework/issues/3906 [gh3908]: https://github.com/encode/django-rest-framework/issues/3908 [gh3926]: https://github.com/encode/django-rest-framework/issues/3926 [gh3933]: https://github.com/encode/django-rest-framework/issues/3933 [gh3936]: https://github.com/encode/django-rest-framework/issues/3936 [gh3938]: https://github.com/encode/django-rest-framework/issues/3938 [gh3943]: https://github.com/encode/django-rest-framework/issues/3943 [gh3953]: https://github.com/encode/django-rest-framework/issues/3953 [gh3964]: https://github.com/encode/django-rest-framework/issues/3964 [gh3968]: https://github.com/encode/django-rest-framework/issues/3968 [gh3970]: https://github.com/encode/django-rest-framework/issues/3970 [gh3971]: https://github.com/encode/django-rest-framework/issues/3971 [gh3976]: https://github.com/encode/django-rest-framework/issues/3976 [gh3983]: https://github.com/encode/django-rest-framework/issues/3983 [gh3990]: https://github.com/encode/django-rest-framework/issues/3990 [gh4002]: https://github.com/encode/django-rest-framework/issues/4002 [gh4003]: https://github.com/encode/django-rest-framework/issues/4003 [gh4005]: https://github.com/encode/django-rest-framework/issues/4005 [gh4006]: https://github.com/encode/django-rest-framework/issues/4006 [gh4008]: https://github.com/encode/django-rest-framework/issues/4008 [gh4021]: https://github.com/encode/django-rest-framework/issues/4021 [gh4025]: https://github.com/encode/django-rest-framework/issues/4025 [gh4040]: https://github.com/encode/django-rest-framework/issues/4040 [gh4041]: https://github.com/encode/django-rest-framework/issues/4041 [gh4049]: https://github.com/encode/django-rest-framework/issues/4049 [gh4075]: https://github.com/encode/django-rest-framework/issues/4075 [gh4079]: https://github.com/encode/django-rest-framework/issues/4079 [gh4090]: https://github.com/encode/django-rest-framework/issues/4090 [gh4097]: https://github.com/encode/django-rest-framework/issues/4097 [gh4098]: https://github.com/encode/django-rest-framework/issues/4098 [gh4103]: https://github.com/encode/django-rest-framework/issues/4103 [gh4105]: https://github.com/encode/django-rest-framework/issues/4105 [gh4106]: https://github.com/encode/django-rest-framework/issues/4106 [gh4107]: https://github.com/encode/django-rest-framework/issues/4107 [gh4118]: https://github.com/encode/django-rest-framework/issues/4118 [gh4146]: https://github.com/encode/django-rest-framework/issues/4146 [gh4149]: https://github.com/encode/django-rest-framework/issues/4149 [gh4153]: https://github.com/encode/django-rest-framework/issues/4153 [gh4156]: https://github.com/encode/django-rest-framework/issues/4156 [gh4157]: https://github.com/encode/django-rest-framework/issues/4157 [gh4158]: https://github.com/encode/django-rest-framework/issues/4158 [gh4166]: https://github.com/encode/django-rest-framework/issues/4166 [gh4176]: https://github.com/encode/django-rest-framework/issues/4176 [gh4179]: https://github.com/encode/django-rest-framework/issues/4179 [gh4180]: https://github.com/encode/django-rest-framework/issues/4180 [gh4181]: https://github.com/encode/django-rest-framework/issues/4181 [gh4185]: https://github.com/encode/django-rest-framework/issues/4185 [gh4187]: https://github.com/encode/django-rest-framework/issues/4187 [gh4191]: https://github.com/encode/django-rest-framework/issues/4191 [gh4192]: https://github.com/encode/django-rest-framework/issues/4192 [gh4194]: https://github.com/encode/django-rest-framework/issues/4194 [gh4195]: https://github.com/encode/django-rest-framework/issues/4195 [gh4196]: https://github.com/encode/django-rest-framework/issues/4196 [gh4212]: https://github.com/encode/django-rest-framework/issues/4212 [gh4215]: https://github.com/encode/django-rest-framework/issues/4215 [gh4217]: https://github.com/encode/django-rest-framework/issues/4217 [gh4219]: https://github.com/encode/django-rest-framework/issues/4219 [gh4229]: https://github.com/encode/django-rest-framework/issues/4229 [gh4233]: https://github.com/encode/django-rest-framework/issues/4233 [gh4244]: https://github.com/encode/django-rest-framework/issues/4244 [gh4246]: https://github.com/encode/django-rest-framework/issues/4246 [gh4253]: https://github.com/encode/django-rest-framework/issues/4253 [gh4254]: https://github.com/encode/django-rest-framework/issues/4254 [gh4255]: https://github.com/encode/django-rest-framework/issues/4255 [gh4256]: https://github.com/encode/django-rest-framework/issues/4256 [gh4259]: https://github.com/encode/django-rest-framework/issues/4259 [gh4323]: https://github.com/encode/django-rest-framework/issues/4323 [gh4268]: https://github.com/encode/django-rest-framework/issues/4268 [gh4321]: https://github.com/encode/django-rest-framework/issues/4321 [gh4308]: https://github.com/encode/django-rest-framework/issues/4308 [gh4305]: https://github.com/encode/django-rest-framework/issues/4305 [gh4316]: https://github.com/encode/django-rest-framework/issues/4316 [gh4294]: https://github.com/encode/django-rest-framework/issues/4294 [gh4293]: https://github.com/encode/django-rest-framework/issues/4293 [gh4315]: https://github.com/encode/django-rest-framework/issues/4315 [gh4314]: https://github.com/encode/django-rest-framework/issues/4314 [gh4289]: https://github.com/encode/django-rest-framework/issues/4289 [gh4265]: https://github.com/encode/django-rest-framework/issues/4265 [gh4285]: https://github.com/encode/django-rest-framework/issues/4285 [gh4287]: https://github.com/encode/django-rest-framework/issues/4287 [gh4313]: https://github.com/encode/django-rest-framework/issues/4313 [gh4281]: https://github.com/encode/django-rest-framework/issues/4281 [gh4299]: https://github.com/encode/django-rest-framework/issues/4299 [gh4307]: https://github.com/encode/django-rest-framework/issues/4307 [gh4302]: https://github.com/encode/django-rest-framework/issues/4302 [gh4303]: https://github.com/encode/django-rest-framework/issues/4303 [gh4298]: https://github.com/encode/django-rest-framework/issues/4298 [gh4291]: https://github.com/encode/django-rest-framework/issues/4291 [gh4270]: https://github.com/encode/django-rest-framework/issues/4270 [gh4272]: https://github.com/encode/django-rest-framework/issues/4272 [gh4273]: https://github.com/encode/django-rest-framework/issues/4273 [gh4288]: https://github.com/encode/django-rest-framework/issues/4288 [gh3565]: https://github.com/encode/django-rest-framework/issues/3565 [gh3610]: https://github.com/encode/django-rest-framework/issues/3610 [gh4198]: https://github.com/encode/django-rest-framework/issues/4198 [gh4199]: https://github.com/encode/django-rest-framework/issues/4199 [gh4236]: https://github.com/encode/django-rest-framework/issues/4236 [gh4292]: https://github.com/encode/django-rest-framework/issues/4292 [gh4296]: https://github.com/encode/django-rest-framework/issues/4296 [gh4318]: https://github.com/encode/django-rest-framework/issues/4318 [gh4330]: https://github.com/encode/django-rest-framework/issues/4330 [gh4331]: https://github.com/encode/django-rest-framework/issues/4331 [gh4332]: https://github.com/encode/django-rest-framework/issues/4332 [gh4335]: https://github.com/encode/django-rest-framework/issues/4335 [gh4336]: https://github.com/encode/django-rest-framework/issues/4336 [gh4338]: https://github.com/encode/django-rest-framework/issues/4338 [gh4339]: https://github.com/encode/django-rest-framework/issues/4339 [gh4340]: https://github.com/encode/django-rest-framework/issues/4340 [gh4344]: https://github.com/encode/django-rest-framework/issues/4344 [gh4345]: https://github.com/encode/django-rest-framework/issues/4345 [gh4346]: https://github.com/encode/django-rest-framework/issues/4346 [gh4347]: https://github.com/encode/django-rest-framework/issues/4347 [gh4348]: https://github.com/encode/django-rest-framework/issues/4348 [gh4349]: https://github.com/encode/django-rest-framework/issues/4349 [gh4354]: https://github.com/encode/django-rest-framework/issues/4354 [gh4357]: https://github.com/encode/django-rest-framework/issues/4357 [gh4358]: https://github.com/encode/django-rest-framework/issues/4358 [gh4359]: https://github.com/encode/django-rest-framework/issues/4359 [gh4361]: https://github.com/encode/django-rest-framework/issues/4361 [gh4416]: https://github.com/encode/django-rest-framework/issues/4416 [gh4409]: https://github.com/encode/django-rest-framework/issues/4409 [gh4415]: https://github.com/encode/django-rest-framework/issues/4415 [gh4410]: https://github.com/encode/django-rest-framework/issues/4410 [gh4408]: https://github.com/encode/django-rest-framework/issues/4408 [gh4398]: https://github.com/encode/django-rest-framework/issues/4398 [gh4407]: https://github.com/encode/django-rest-framework/issues/4407 [gh4403]: https://github.com/encode/django-rest-framework/issues/4403 [gh4404]: https://github.com/encode/django-rest-framework/issues/4404 [gh4412]: https://github.com/encode/django-rest-framework/issues/4412

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