リリースノート

バージョニング

マイナーバージョン番号(0.0.x)は、API互換性のある変更に使用されます。マイナーポイントリリース間のアップグレードは、他のコード変更なしで行うことができるはずです。

ミディアムバージョン番号(0.x.0)には、非推奨ポリシーに沿って、APIの変更が含まれる場合があります。ミディアムポイントリリース間のアップグレードを行う前に、リリースノートを注意深く読んでください。

メジャーバージョン番号(x.0.0)は、実質的なプロジェクトのマイルストーンのために予約されています。

非推奨ポリシー

RESTフレームワークのリリースは、Djangoの非推奨ポリシーに沿った、正式な非推奨ポリシーに従います。

バージョン1.0に存在する機能の非推奨のタイムラインは、次のようになります。

  • バージョン1.1は1.0と完全に後方互換性がありますが、非推奨になる予定の機能を使用すると、PendingDeprecationWarningをサブクラス化するRemovedInDRF13Warning警告が発生します。これらの警告はデフォルトで非表示になっていますが、必要な変更の移行を開始する準備ができたら、明示的に有効にできます。たとえば、python -Wd manage.py testを使用してテストの実行を開始すると、必要なAPI変更について警告されます。

  • バージョン1.2では、これらの警告がデフォルトでうるさいDeprecationWarningをサブクラス化するようにエスカレートされます。

  • バージョン1.3では、APIの非推奨部分が完全に削除されます。

Djangoのポリシーに沿って、ドキュメントに記載されていないフレームワークのすべての部分は、一般にプライベートAPIと見なされるべきであり、変更される可能性があります。

アップグレード

Django REST frameworkを最新バージョンにアップグレードするには、pipを使用します

pip install -U djangorestframework

現在インストールされているバージョンは、pip showを使用して確認できます

pip show djangorestframework

3.15.xシリーズ

3.15.1

日付:2024年3月22日

  • カスタムクラスが.get_search_termsを呼び出している場合、引用符で囲まれた文字列とカンマ区切りの文字列のSearchFilter処理を修正します。参照:[#9338]
  • 意図しない副作用を含んでいた3.15.0の問題数を元に戻します。参照:[#9331]

3.15.0

日付:2024年3月15日

  • Django 5.0とPython 3.12のサポート[#9157]
  • ブラウズ可能APIでログアウトを実行するためにGETメソッドの代わりにPOSTメソッドを使用する[9208]
  • jQuery 3.7.1のサポートを追加し、以前のバージョンを削除しました[#9094]
  • デフォルトのパスコンバーターとしてstrを使用する[#9066]
  • Python 3.11で追加された@actionデコレーターでのhttp.HTTPMethodのサポートに関するドキュメント[#9067]
  • exceptions.mdを更新する[#9071]
  • 部分的なシリアライザーには必須フィールドがないようにする[#7563]
  • モデルフィールドからシリアライザーフィールドに「default」を伝播する。[#9030]
  • ListSerializerでchild.run_validationの呼び出しをオーバーライドできるようにする[#8035]
  • SearchFilterの動作をdjango.contrib.adminの検索に合わせる[#9017]
  • 不明なフィールドエラーにクラス名を追加しました[#9019]
  • 修正:ページネーション応答スキーマ。[#9049]
  • IntEnumをサポートするようにChoiceFieldの選択肢を修正する[#8955]
  • 無効な値を持つ検索フィールドのレンダリングに関するSearchFilterを修正する[#9023]
  • timedeltaのOpenAPIスキーマyamlレンダリングを修正する[#9007]
  • 非None名前空間でDEFAULT_VERSIONを無視するNamespaceVersioningを修正する[#7278]
  • CoreAPIの非推奨警告を追加しました[#7519]
  • テーブル全体のロードをトリガーしたfield.choicesの使用を削除しました[#8950]
  • BooleanField検証で文字列値の大文字と小文字を混在させることを許可する[#8970]
  • ListSerializerでの使用に関するBrowsableAPIRendererを修正します。[#7530]
  • 2つのパーミッションクラスのORのセマンティクスを変更する[#7522]
  • pytzへの依存関係を削除する[#8984]
  • Serializer内でset_valueをメソッドにする[#8001]
  • URLPathVersioningの逆フォールバックを修正する[#7247]
  • DecimalFieldのmin_valueおよびmax_value引数でのDecimal型の警告[#8972]
  • 選択肢の値のマッピングを修正する[#8968]
  • ファイル処理にコンテキストマネージャーを使用するように読み取り関数をリファクタリングする[#8967]
  • 修正:ビューで設定されていない場合のCursorPaginationの並べ替えのフォールバック[#8954]
  • OrderedDictdictに置き換えた[#8964]
  • SimpleMetadataクラスにmax_digitsとdecimal_places属性を含めるようにget_field_infoメソッドをリファクタリングする[#8943]
  • バリデーターに__eq__を実装する[#8925]
  • CursorPaginationが並べ替えフィールドのnullを尊重するようにする[#8912]
  • タイムゾーンデータの主要なソースとしてZoneInfoを使用する[#8924]
  • TokenAdminにユーザー名検索フィールドを追加する(#8927)[#8934]
  • many=Falseの場合にSlugRelatedFieldでネストされたリレーションを処理する[#8922]
  • jQueryのバージョンを3.6.4に上げ、参照リンクを更新しました[#8909]
  • UniqueConstraintをサポートする[#7438]
  • Request、Response、Field、GenericAPIViewを添え字可能にすることを許可します。これにより、クラスを型チェックのためにジェネリックにすることができます。[#8825]
  • 機能:Djangoスタイルの検証エラーをサポートするためにValidationErrorにいくつかの変更を加える[#8863]
  • DjangoModelPermissionsでcan_read_modelパーミッションを尊重する修正[#8009]
  • SimplePathRouterを追加する[#6789]
  • 更新後に、関連オブジェクトを再プリフェッチする[#8043]
  • FilePathFieldの必須引数を修正する[#8805]
  • basenameが一意でない場合はImproperlyConfigured例外を発生させる[#8438]
  • openapiでPrimaryKeyRelatedFieldのpkfieldを使用する[#8315]
  • BasicAuthenticationでpartitionをsplitに置き換える[#8790]
  • BooleanFieldのallow_nullの動作を修正する[#8614]
  • ListFieldでDjangoのValidationErrorsを処理する[#6423]
  • インラインCSSを少し削除します。必要であり、利用可能な場合は、CSPナンスを追加します[#8783]
  • トークン管理でユーザー選択にオートコンプリートウィジェットを使用する[#8534]
  • 強力なCSPと互換性のあるブラウズ可能APIを作成する[#8784]
  • CSRFトークンを挿入するためのインラインスクリプトの実行を回避する[#7016]
  • インフレクションに対するグローバルな依存関係を軽減する[#8017] [#8781]
  • Django URLを登録する[#8778]
  • TokenProxyのVerbose Name Translationを実装しました[#8713]
  • DurationFieldのデシリアライズでのOverflowErrorを適切に処理する[#8042]
  • OpenAPI操作名の複数形を適切に修正する[#8017]
  • スキーマレンダリングでSafeStringをプレーン文字列として表現する[#8429]
  • 修正 #8771 - _ignore_model_permissions = Trueの場合でも認証を確認する[#8772]
  • ページクエリパラメータが空の文字列の場合の404を修正する[#8578]
  • ListSerializer.to_representationのインスタンスチェックを修正する[#8726] [#8727]
  • 入力が大きすぎる数値の場合、FloatFieldがクラッシュする[#8725]
  • SimpleMetada label_lookupに不足しているDurationFieldを追加する[#8702]
  • Python 3.11のサポートを追加する[#8752]
  • ページネーションクラスでリクエストを一貫して利用可能にする[#8764]
  • DecimalFields表現で末尾のゼロを削除する可能性[#6514]
  • シリアライザーフィールド名を取得するためのメソッドを追加する(OpenAPI)[#7493]
  • OperandHolderクラスに__eq__メソッドを追加する[#8710]
  • テストしていないときにdjango.testパッケージのインポートを回避する[#8699]
  • ラップされた Django 例外の例外メッセージを保持する [#8051]
  • CursorPagination の OpenAPI スキーマに examplesformat を含める [#8687] [#8686]
  • Request で deepcopy を行う際の無限再帰を修正 [#8684]
  • リファクタリング: try/except を contextlib.suppress() に置き換える [#8676]
  • SerializeMethodField の docstring の軽微な修正 [#8629]
  • 軽微なリファクタリング: 不要な list() 関数の使用 [#8672]
  • 不要なリスト内包表記 [#8670]
  • 現在の非推奨を示すために正しいクラスを使用する [#8665]

3.14.xシリーズ

3.14.0

日付: 2022年9月22日

  • Django 2.2 はサポートされなくなりました。 [#8662]
  • Django 4.1 との互換性。 [#8591]
  • generateschema 管理コマンドに --api-version CLI オプションを追加。 [#8663]
  • is_valid(raise_exception=False) をキーワード専用引数として強制する。 [#7952]
  • Validators で set_context の呼び出しを停止する。 [#8589]
  • ErrorDetails.__ne__ から NotImplemented を返す。 [#8538]
  • カスタムタイムゾーンが設定されている場合、DateTimeField.default_timezone を評価しない。 [#8531]
  • Browsable API で相対 URL をクリック可能にする。 [#8464]
  • ドット表記で指定された属性が存在しない場合、デフォルト値にフォールバックする ManyRelatedField をサポートする。ManyRelatedField.get_attributeField.get_attribute に一致させる。 [#7574]
  • schemas.openapi.get_reference を公開する。 [#7515]
  • ReturnDict が Python 3.9 以降で dict の和演算子をサポートするようにする。 [#8302]
  • スロットリングを、ユーザーが認証されているかどうかを確認する前に request.user が設定されているかどうかを確認するように更新する。 [#8370]

3.13.xシリーズ

3.13.1

日付: 2021年12月15日

  • 関数ベースの @api_view でのスキーマ命名の変更を元に戻す。 [#8297]

3.13.0

日付: 2021年12月13日

  • Django 4.0 との互換性。 [#8178]
  • ListSerializermax_length および min_length オプションを追加。 [#8165]
  • AutoSchemaget_request_serializer および get_response_serializer フックを追加。 [#7424]
  • null 許容の読み取り専用フィールドの OpenAPI 表現を修正。 [#8116]
  • API スキーマ出力で UNICODE_JSON 設定を尊重する。 [#7991]
  • RemoteUserAuthentication の修正。 [#7158]
  • Field コンストラクタをキーワード専用にする。 [#7632]

3.12.xシリーズ

3.12.4

日付: 2021年3月26日

  • スロットリングの .history の追跡に list の代わりに deque を使用するのを元に戻す。(DjangoRedis キャッシュバックエンドとの非互換性のため。#7870 を参照) [#7872]

3.12.3

日付: 2021年3月25日

  • 複数のデータベース構成が使用されている場合に ATOMIC_REQUESTS を適切に処理する。 [#7739]
  • LimitOffsetPagination が構成されているが、リクエストにページネーションパラメータが含まれていない場合、COUNT クエリをバイパスする。 [#6098]
  • DecimalFieldallow_null=True を尊重する。 [#7718]
  • BooleanField でタイトルケースの "Yes"/"No" 値を許可する。 [#7739]
  • 動作をオーバーライドするための PageNumberPagination.get_page_number() メソッドを追加。 [#7652]
  • デフォルト、最小、または最大フィールドとして存在する場合の OpenAPI スキーマでの timedelta 値のレンダリングを修正。 [#7641]
  • Browsable API フォームで JSONFields をインデント付きでレンダリングする。 [#6243]
  • admin Token ビューで不要なデータベースクエリを削除する。 [#7852]
  • bool が PrimaryKeyRelatedField フィールドに渡された場合、int にキャストするのではなく、検証エラーを発生させる。 [#7597]
  • OrderingFilter でモデルプロパティを自動生成された順序付けフィールドとして含めない。 [#7609]
  • スロットリングの .history の追跡に list の代わりに deque を使用する。 [#7849]

3.12.2

日付: 2020年10月13日

  • rest_framework.authtoken.models がインポートされているが、rest_framework.authtoken が INSTALLED_APPS にない場合の問題を修正。 [#7571]
  • OpenAPI スキーマで BrowsableAPIRenderer のサブクラスを無視する。 [#7497]
  • シリアライザーフィールドでの例外キャッチを狭めて、壊れた get_queryset() メソッドのエラーがマスクされないようにする。 [#7480]

3.12.1

日付: 2020年9月28日

  • TokenProxy マイグレーションを追加。 [#7557]

3.12.0

日付: 2020年9月28日

  • generateschema コマンドに --file オプションを追加。 [#7130]
  • OpenAPI スキーマ生成の tags をサポートする。スキーマドキュメントを参照。 [#7184]
  • スキーマ生成の操作 ID をカスタマイズすることをサポートする。スキーマドキュメントを参照。 [#7190]
  • スキーマ生成のための OpenAPI コンポーネントをサポートする。スキーマドキュメントを参照。 [#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スキーマドキュメントを参照
  • Django 3.1 のデータベースに依存しない JSONField のサポートを追加。 [#7467]
  • SearchFilterJSONField および HStoreField モデルフィールドでのネストされた検索をサポートするようになった。 [#7121]
  • SearchFilterannotate() フィールドでの検索をサポートするようになった。 [#6240]
  • authtoken モデルが admin URL で pk を公開しなくなった。 [#7341]
  • Request インスタンスに __repr__ を追加。 [#7239]
  • 基本認証資格情報の UTF-8 デコード(Latin-1 フォールバック付き)。 [#7193]
  • CharField がサロゲート文字を検証エラーとして扱う。 [#7026]
  • スキーマに呼び出し可能オブジェクトをデフォルト値として含めない。 [#7105]
  • 利用可能なすべての子情報を含めるように ListField スキーマ出力を改善する。 [#7137]
  • BooleanField スキーマ出力に default=False を含めることを許可する。 [#7165]
  • ChoiceField スキーマ出力に "type" 情報を含める。 [#7161]
  • スキーマオブジェクトに "type": "object" を含める。 [#7169]
  • DELETE リクエストのスキーマ出力にコンポーネントを含めない。 [#7229]
  • DecimalField のスキーマタイプを修正。 [#7254]
  • ObtainAuthToken ビューのスキーマ生成を修正。 [#7211]
  • ビューの .get_serializer() メソッドへの context=... の渡しをサポートする。 [#7298]
  • パーミッションクラスに設定されている場合、カスタムコードを PermissionDenied に渡す。 [#7306]
  • スキーマページネーション出力に "example" を含める。 [#7275]
  • POST リクエストのスキーマ出力のデフォルトのステータスコードを 201 にする。 [#7206]
  • スキーマ出力で操作 ID に camelCase を使用する。 [#7208]
  • スキーマ出力に重複する操作 ID が存在する場合に警告する。 [#7207]
  • ChoiceField をスキーマ出力にマッピングする際の decimal 型の処理を改善する。 [#7264]
  • OpenAPI スキーマ出力で YAML エイリアスを無効にする。 [#7131]
  • 名前空間付き URL の下に含まれる API のアクション URL 名を修正する。 [#7287]
  • jQuery のバージョンを 3.4 から 3.5 に更新する。 [#7313]
  • シリアライザーフィールドが source=... を使用する場合の UniqueTogether の処理を修正する。 [#7143]
  • HTTP HEAD リクエストで、ViewSet インスタンスの self.action が正しく設定されるようになった。 [#7223]
  • API スキーマパスが存在しない場合、有効な OpenAPI スキーマを返す。 [#7125]
  • パッケージ配布にテストを含める。 [#7145]
  • 型チェッカーが ModelSerializer[Author] のようなアノテーションをサポートできるようにする。 [#7385]
  • APIClient を使用する場合に、リクエストの Content-Type ヘッダーに無効な charset=None 部分を含めない。 [#7400]
  • OpenAPI regex の \Z/\z トークンを修正。 [#7389]
  • ソースフィールドが実際にはプロパティである場合の PrimaryKeyRelatedField および HyperlinkedRelatedField を修正する。 [#7142]
  • Token.generate_key がクラスメソッドになった。 [#7502]
  • @action がメソッドを @functools.wraps を使用して情報を保持しないデコレータでラップした場合に警告する。 [#7098]
  • serializers.NullBooleanFieldallow_null=True を持つ serializers.BooleanField に賛成して非推奨にする [#7122]

3.11.xシリーズ

3.11.2

日付: 2020年9月30日

  • セキュリティ: Django の組み込み urlize に賛成して urlize_quoted_links テンプレートタグを削除する。Browsable API で一部の種類のコンテンツに対して XSS 脆弱性を削除する。

3.11.1

日付: 2020年8月5日

  • Django 3.1 との互換性を修正

3.11.0

日付: 2019年12月12日

  • .set_context API を、requires_context マーカーに賛成して削除する
  • choices を持つ TextField のデフォルトウィジェットをセレクトボックスに変更。 #6892
  • JSONField などの非リレーショナルフィールドでのネストされた書き込みをサポート。 #6916
  • 構成されたパーサー/レンダラーに基づいて、OpenAPI スキーマにリクエスト/レスポンスメディアタイプを含める。 #6865
  • ビューの docstring に基づいて、OpenAPI スキーマに操作の説明を含める。 #6898
  • OpenAPI スキーマですべてのオプションフィールドを持つシリアライザーの表現を修正する。 #6941, #6944
  • OpenAPI スキーマでの serializers.HStoreField の表現を修正する。 #6914
  • タイトルまたはバージョンが提供されていない場合の OpenAPI 生成を修正する。 #6912
  • OpenAPI スキーマで大きな整数に int64 表現を使用する。 #7018
  • フィールドサブクラスに .to_representation 実装が提供されていない場合のエラーメッセージを改善する。 #6996
  • 複数の継承を使用するシリアライザークラスの修正。 #6980
  • パスにパーセントエンコードされたコンポーネントがあるハイパーリンク URL フィールドを反転するための修正。 #7059
  • bootstrap を 3.4.1 に更新。 #6923

3.10.xシリーズ

3.10.3

日付: 2019年9月4日

  • OpenAPI スキーマ生成に API バージョンを含め、デフォルトは空の文字列とする。
  • OpenAPI レスポンススキーマにページネーションプロパティを追加する。
  • OpenAPI レスポンススキーマに欠落している「description」プロパティを追加する。
  • OpenAPI スキーマで空ではない場合にのみ「required」を含める。
  • OpenAPI スキーマの「DELETE」ケースのレスポンススキーマを修正する。
  • リストビューレスポンススキーマに配列型を使用する。
  • OpenAPI 操作 ID で一貫性のある lowerInitialCamelCase スタイルを使用する。
  • OpenAPI スキーマの minLength/maxLength/minItems/maxItems プロパティを修正する。
  • シリアル化で FileField.url を 1 回だけ呼び出し、パフォーマンスを向上させる。
  • 構成変更後にスロットリング計算がエラーになる可能性があるエッジケースを修正する。

3.10.2

日付: 2019年7月29日

  • さまざまな OpenAPI スキーマの修正。
  • include_docs_urls で urlconf を指定する機能。

3.10.1

日付: 2019年7月17日

  • カスタムユーザーモデルと admin の制約を強制するため、TokenAuth admin にオートコンプリートフィールドを含めない。
  • OpenAPI スキーマ生成には uritemplate が必要だが、coreapi は必要ない。

3.10.0

日付: 2019年7月15日

  • OpenAPI スキーマ生成に切り替える。
  • Python 2 のサポートを終了する。
  • generateschema --generator_class CLI オプションを追加する
  • OpenAPIスキーマ生成のためにPyYamlの依存関係をpyyaml>=5.1に更新しました #6680
  • マークダウンに関するDeprecationWarningを解決しました。 #6317
  • テンプレート内でuser.usernameよりもuser.get_usernameを使用するようにしました。
  • オブジェクト削除後に発生する可能性のあるカーソルページネーションの問題を修正しました。
  • source="*"を持つNullableフィールドの修正。
  • スロットリングチェック中に常にすべてのスロットルクラスを適用するようにしました。
  • jQueryとMarkdownの依存関係を更新しました。
  • 冗長なSerializerMethodFieldのフィールド名引数を厳密に禁止しないようにしました。
  • 認証されていない場合、ブラウズ可能なAPIで追加のアクションをレンダリングしないようにしました。
  • 検索パラメーターからnull文字を取り除くようにしました。
  • detail_routeデコレーターを非推奨とし、detail boolを受け入れるactionに置き換えました。代わりに@action(detail=True)を使用してください。 gh6687
  • list_routeデコレーターを非推奨とし、detail boolを受け入れるactionに置き換えました。代わりに@action(detail=False)を使用してください。 gh6687

3.9.xシリーズ

3.9.4

日付: 2019年5月10日

これは、Python 2でのエラー処理バグを修正したメンテナンスリリースです。

3.9.3

日付: 2019年4月29日

これは、Python 2をサポートする最後のDjango REST Frameworkリリースです。Django REST Framework 3.10にアップグレードする前に、必ずPython 3にアップグレードしてください。

  • Python 2と互換性のある最後のguardianバージョン(v1.4.9)を許可するように、django-guardianの互換性チェックを調整しました。 #6613

3.9.2

日付: 2019年3月3日

  • ルーター:register()時に_urlsキャッシュを無効化するようにしました。 #6407
  • pyyamlを必須にしないように、スキーマレンダラーの作成を遅延させました。 #6416
  • base.htmlに「request_forms」ブロックを追加しました。 #6340
  • 例外発生時にレンダラーをリセットするようにSchemaViewを修正しました。 #6429
  • Django Guardianの依存関係を更新しました。 #6430
  • Django 2.2のサポートを確実にしました。 #6422 & #6455
  • セッションベースのCSRFと互換性のあるテンプレートを作成しました。 #6207
  • リスト以外のiterableを受け入れるようにフィールドのvalidatorsを調整しました。 #6282
  • SearchFilter.get_search_fields()フックを追加しました。 #6279
  • collectionsを介してcollections.abcクラスにアクセスする際のDeprecationWarningを修正しました。 #6268
  • limit_choices_toイントロスペクションでQオブジェクトを許可するようにしました。 #6472
  • コンポーザブルなパーミッションに遅延評価を追加しました。 #6463
  • パーミッション構成に否定の〜演算子を追加しました。 #6361
  • SearchFilterでアノテーション付きフィールドに対してdistinctを呼び出すのを回避しました。 #6240
  • 非推奨を簡素化するためにRemovedInDRF…Warningクラスを導入しました。 #6480

3.9.1

日付: 2019年1月16日

  • ブラウズ可能なAPIのXSS問題を解決しました。 #6330
  • XSS問題を解決するためにBootstrapを3.4.0にアップグレードしました。
  • コンポーザブルなパーミッションに関する問題を解決しました。 #6299
  • 外部キーのlimit_choices_toを尊重するようにしました。 #6371

3.9.0

日付: 2018年10月18日

  • ViewSetの追加アクションを改善しました。 #5605
  • ViewSetサフィックスに対するactionのサポートを修正しました。 #6081
  • actionのドキュメントセクションを許可するようにしました。 #6060
  • Router.registerbase_name引数を非推奨とし、basenameに置き換えました。 #5990
  • Router.get_default_base_nameメソッドを非推奨とし、Router.get_default_basenameに置き換えました。 #5990
  • CharFieldでnullバイトを許可しないように変更しました。 #6073 以前の動作に戻すには、CharFieldをサブクラス化し、バリデーターからProhibitNullCharactersValidatorを削除してください。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) ]
  • OpenAPIRenderergenerate_schema管理コマンドを追加しました。 #6229
  • デフォルトでOpenAPIRendererを追加し、スキーマドキュメントを追加しました。 #6233
  • パーミッションを構成できるようにしました。 #5753
  • Django 2.1でnullableなBooleanFieldを許可するようにしました。 #6183
  • Python 3.7のサポートのテストを追加しました。 #6141
  • Django 2.1の最終リリースを使用してテストします。 #6109
  • サードパーティパッケージにdjangorestframework-datatablesを追加しました。 #5931
  • ISO 8601の日付形式を、年/月のみのオプションを除外するように変更しました。 #5936
  • すべてのpypi.python.org URLをpypi.orgに更新しました。 #5942
  • HTMLフォーム(マルチパートフォームデータ)がオプションのフィールドを尊重するようにしました。 #5927
  • ErrorDetailのハッシュを許可しました。 #5932
  • JSONFieldのスキーマ解析を修正しました。 #5878
  • 説明(help_textから)をsafeを使用してレンダリングするようにしました。 #5869
  • default_error_messageから入力値を削除しました。 #5881
  • DurationFieldにmin_value/max_valueのサポートを追加しました。 #5643
  • pkのみの最適化try/exceptブロックでインスタンスが上書きされる問題を修正しました。 #5747
  • 値がNoneの場合のitemsフィルターからのAttributeErrorを修正しました。 #5981
  • Javascriptのe.indexOfが関数ではないエラーを修正しました。 #5982
  • 追加アクションのスキーマを修正しました。 #5992
  • error_dict/error_listを使用するようにget_error_detailを改善しました。 #5785
  • AdminレンダラーのURLを改善しました。 #5988
  • ドキュメントに「コミュニティ」セクションを追加し、マイナーなクリーンアップを行いました。 #5993
  • guardianのインポートをcompatから移動しました。 #6054
  • DjangoObjectPermissionsFilterクラスを非推奨とし、djangorestframework-guardianパッケージに移動しました。 #6075
  • Django 1.10のサポートを終了しました。 #5657
  • オブジェクト検索でTypeError/ValueErrorのみをキャッチするようにしました。 #6028
  • ModelSerializerで.objectsマネージャーのないモデルを処理するようにしました。 #6111
  • ModelSerializer.create()のエラーメッセージを改善しました。 #6112
  • django 1.11.6+でセッション認証を使用する場合のCSRFクッキーチェックの失敗を修正しました。 #6113
  • JWTドキュメントを更新しました。 #6138
  • urlize_quoted_linksフィルターにautoescapeが渡されない問題を修正しました。 #6191

3.8.xシリーズ

3.8.2

日付: 2018年4月6日

  • read_only + default + unique_togetherの検証を修正しました。 #5922
  • authtoken.viewsは、直接ではなく、rest_framework.compatからcoreapiをインポートします。 #5921
  • ドキュメント: Routeに欠落している引数「detail」を追加しました。 #5920

3.8.1

日付: 2018年4月4日

  • ルートデコレーターで古いurl_nameの動作を使用するようにしました。 #5915

    list_routedetail_routeの場合、関数の名前ではなく、url_pathに基づいてurl_nameの古い動作を維持します。

3.8.0

日付: 2018年4月3日

  • 破壊的変更: read_onlydefaultの動作を変更しました。 #5886

    read_onlyフィールドは、書き込み可能なフィールドから常に除外されるようになりました。

    以前は、default値を持つread_onlyフィールドは、作成および更新操作にdefaultを使用していました。

    古い動作を維持するには、ビューでsave()を呼び出すときにread_onlyフィールドの値を渡す必要がある場合があります。

    def perform_create(self, serializer):
        serializer.save(owner=self.request.user)
    

    または、必要に応じてシリアライザーのsave()create()、またはupdate()をオーバーライドできます。

  • required=Falseの場合のallow_nullの動作を修正しました。 #5888

    明示的なdefaultがない場合、allow_nullは、出力シリアル化の場合のデフォルトがnullであることを意味します。以前は、このようなフィールドは、read-onlyであるか、それ以外の場合は必須でない場合にスキップされていました。

    このようなフィールドが出力表現から除外されることに依存していた場合は、後方互換性の問題が発生する可能性があります。古い動作を復元するには、Noneの場合にフィールドを除外するようにdataをオーバーライドできます。

    例:

    @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
    
  • 動的なルート生成をリファクタリングし、viewsetアクションのイントロスペクト可能性を向上させました。 #5705

    ViewSetには、アクションのセットと現在のアクションの詳細をイントロスペクトできる新しい属性とメソッドが提供されました。

    • list_routedetail_routeを単一のactionデコレーターにマージしました。
    • ViewSetのすべての追加アクションを.get_extra_actions()で取得します。
    • 追加のアクションは、デコレートされたメソッドにurl_nameurl_pathを設定するようになりました。
    • url_pathは常に適切であるとは限らないため(たとえば、パス内の引数をキャプチャするなど)、url_nameはパスではなく、関数の名前に基づくようになりました。
    • .reverse_action()メソッド(3.7.4で追加)を通じてアクションURLのリバースを有効にしました。
    • リバース呼び出しの例:self.reverse_action(self.custom_action.url_name)
    • 現在のアクションがコレクションまたは単一のインスタンスで動作しているかどうかを示すために、detailinitkwargを追加しました。

    追加の変更点:

    • detailブール値を持つactionデコレーターを優先して、list_routedetail_routeを非推奨にしました。
    • 非推奨となった動的なリスト/詳細ルートのバリアントを、detailブール値を持つDynamicRouteに置き換えました。
    • ルーターの動的ルート生成をリファクタリングしました。
    • list_routedetail_routeは、関数名ではなくurl_pathに基づいてurl_nameを決定するという、以前の動作を維持します。
  • 3.7.4のリリースノートのフォーマットを修正しました #5704

  • ドキュメント: DRFの書き込み可能なネストされたシリアライザーの参照を更新しました #5711
  • ドキュメント: 認証URLの例のタイプミスを修正しました。 #5713
  • 複合フィールドの子エラーを改善しました #5655
  • dict/listフィールドのHTML入力を無効にしました #5702
  • HostNameVersioningドキュメントのタイプミスを修正しました #5709
  • モジュールとクラス名のインポートにrsplitを使用するようにしました #5712
  • URLPatternsTestCaseを正式化しました #5703
  • 例外変換テストを追加しました #5700
  • staticfilesをテストしました #5701
  • ドキュメントとスキーマのサードパーティパッケージにdrf-yasgを追加しました #5720
  • 未使用のcompat._resolve_model()を削除しました #5733
  • サポートされていないPython 3.2の互換性ワークアラウンドを削除しました #5734
  • iter(dict.keys())よりもiter(dict)を優先するようにしました #5736
  • setuptoolsにpython_requires引数を渡すようにしました #5739
  • ドキュメントから未使用のリンクを削除しました #5735
  • ドキュメント内で可能な場合はhttpsプロトコルを優先するようにしました #5729
  • HStoreField、Postgresフィールドのテストを追加しました #5654
  • ドキュメント内のValidationErrorを常に完全修飾するようにしました #5751
  • ManualSchemaから到達不能なコードを削除しました #5766
  • APIドキュメントのコードサンプルをカスタマイズできるようにしました #5752
  • ドキュメントをpip showを使用するように更新しました #5757
  • テンプレート内で'staticfiles'ではなく'static'を読み込むようにしました #5773
  • fieldsドキュメントのタイプミスを修正しました #5783
  • ドキュメント内で"NamespacedVersioning"ではなく"NamespaceVersioning"を参照するようにしました #5754
  • ErrorDetail: __eq__/__ne____repr__を追加しました #5787
  • ドキュメント内のbackground-attachment: fixedを置き換えました #5777
  • 404 & 403レスポンスをexceptions.APIExceptionの出力と一貫性があるようにしました #5763
  • APIドキュメントの小さな修正: スキーマ #5796
  • PrimaryKeyRelatedFieldのスキーマ生成を修正しました #5764
  • シリアライザーのDictFieldをスキーマ内でObjectとして表現するようにしました #5765
  • ObtainAuthTokenを再実装するドキュメント例を追加しました #5802
  • ObtainAuthTokenビューにスキーマを追加しました #5676
  • リクエストのフォームデータ処理を修正しました #5800
  • authtokenビューのインポートを修正しました #5818
  • pytest、isortを更新しました #5815 #5817 #5894
  • 非ISO8601の日付時刻のアクティブなタイムゾーン処理を修正しました。 #5833
  • 値が0の場合にTemplateHTMLRendererがIntegerField入力をレンダリングするようにしました。 #5834
  • チュートリアルの手順のエンドポイントを修正しました #5835
  • サードパーティパッケージにDjango Rest Frameworkロールフィルターを追加しました #5809
  • 静的アセットの単一コピーを使用するようにしました。jQueryを更新しました #5823
  • 三項条件式をPEP308準拠に変更しました #5827
  • 'Reactを使用したTodoリストAPI'および'ブログAPI'チュートリアルへのリンクを追加しました #5837
  • ModelSerializerのコメントのタイプミスを修正しました #5844
  • テストの失敗を避けるためにadminをインストール済みアプリに追加しました。 #5870
  • SimpleMetadataのUUIDFieldのスキーマを修正しました。 #5872
  • 名前空間を含むルーターインクルードに関するドキュメントを修正しました。 #5843
  • ドット付きソースのデフォルトにモデルオブジェクトを使用するテストを行いました #5880
  • nullable関連フィールドのトラバースを許可しました #5849
  • 追加: チュートリアル: Reactを使用したDjango REST (Django 2.0) #5891
  • メソッドのオーバーライドを許可するためにLimitOffsetPagination.get_countを追加しました #5846
  • メタデータに非表示フィールドを表示しないようにしました #5854
  • OrderingFilterが'ordering'フィールドに空のタプル(またはリスト)を処理できるようにしました。 #5899
  • 汎用的な500および400のJSONエラーハンドラーを追加しました。 #5904

3.7.xシリーズ

3.7.7

日付: 2017年12月21日

  • パッケージングに*.moロケールファイルを含めるようにタイプミスを修正しました。 #5697, #5695

3.7.6

日付: 2017年12月21日

  • パッケージングに欠落していた*.icoアイコンファイルを追加しました。

3.7.5

日付: 2017年12月21日

  • パッケージングに欠落していた*.woff2フォントファイルを追加しました。 #5692
  • パッケージングに欠落していた*.moロケールファイルを追加しました。 #5695, #5696

3.7.4

日付: 2017年12月20日

  • スキーマ: manual_fields処理のメソッドを抽出しました #5633

    メソッドごとの手動フィールドの提供など、manual_fields処理をより簡単にカスタマイズできるようにします。AutoSchemaは、意図されたオーバーライドポイントとしてget_manual_fieldsと、リストからの名前によるフィールドの置換を処理するユーティリティメソッドupdate_fieldsを追加します。これは通常、オーバーライドしないようにしてください。

    注意: AutoSchema.__init__は、manual_fieldsがリストであることを保証するようになりました。以前は内部的にNoneとして格納されていた可能性があります。

  • urlparse互換性シムを削除しました。代わりにsixを使用します #5579

  • TimeDelta.total_seconds()の互換性ラッパーを削除しました #5577
  • プロジェクト全体のすべての空白をクリーンアップしました #5578
  • 互換性のクリーンアップ #5581
  • ブラウザブルAPIビューにpygments CSSブロックを追加しました #5584 #5587
  • compatから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
  • PyPIのREADMEレンダリングを修正し、READMEビルドをCIに追加しました #5625
  • チュートリアルを更新しました #5622
  • allow_null=Trueの非必須フィールドは、デフォルト値を暗示しないようにしました #5639
  • ドキュメント: allow_nullシリアル化出力に関する注意を追加しました #5641
  • tox.iniでDjango 2.0リリースを使用するように更新しました #5645
  • 無効なdataが提供された場合のブラウザブルAPIレンダリング用のSerializer.dataを修正しました #5646
  • ドキュメント: ベアAPIViewに関するAutoSchemaの制限に関する注意を追加しました #5649
  • ViewSetに.basename.reverse_action()を追加しました #5648
  • ドキュメント: シリアライザーのドキュメントのタイプミスを修正しました #5652
  • override_settingsの互換性を修正しました #5668
  • DEFAULT_SCHEMA_CLASS設定を追加しました #5658
  • 生成されたBooleanFieldがrequired=Falseであることに関するドキュメントノートを追加しました #5665
  • 'dist'ビルドを追加しました #5656
  • ドキュメント文字列のタイプミスを修正しました #5678
  • ドキュメント: UNAUTHENTICATED_USER = Noneに関する注意を追加しました #5679
  • “APIのドキュメント化”のOPTIONS例を更新しました #5680
  • ドキュメント: FBVのオブジェクト権限に関する注意を追加しました #5681
  • ドキュメント: to_representationドキュメントに例を追加しました #5682
  • ドキュメントにClassy DRFへのリンクを追加しました #5683
  • ViewSet.actionをドキュメント化しました #5685
  • スキーマドキュメントのタイプミスを修正しました #5687
  • スキーマ生成のURLパターン解析を修正しました #5689
  • source='*'を使用した例をカスタムフィールドのドキュメントに追加しました。 #5688
  • Django 2 path()ルートでのformat_suffix_patternsの動作を修正しました #5691

3.7.3

日付: 2017年11月6日

  • contrib.authビューのインポートからのAppRegistryNotReadyエラーを修正しました #5567

3.7.2

日付: 2017年11月6日

  • django.contrib.auth.login()/logout()ビューの削除により、Django 2.1の互換性を修正しました。 #5510
  • TextLexerの欠けているインポートを追加しました。 #5512
  • キャッシュに関する例とドキュメントを追加しました。 #5514
  • スキーマ生成に日付と日時形式を含めるようにしました。 #5511
  • マークダウンのコードブロックにトリプルバッククォートを使用するようにしました。 #5513
  • インタラクティブドキュメント - 下部のサイドバー項目を固定表示にしました。 #5516
  • ページネーションシステムチェックを明確化しました。 #5524
  • JSONBoundFieldが無効なJSONを改変しないようにしました。 #5527
  • Browsable APIでJSONFieldをtextareaとしてレンダリングするようにしました。 #5530
  • スキーマ:ViewSetアクションのOPTIONS/HEADを除外しました。 #5532
  • ドット付きソースの順序を修正しました。 #5533
  • 修正:allow_null=Trueのフィールドは、デフォルトのシリアライズ値を暗示するようにしました。 #5518
  • Locationヘッダーが文字列('str')であり、サブクラスでないことを保証しました。 #5544
  • api-guide/parsersの例にインポートを追加しました。 #5547
  • 範囲外の日時のOverflowErrorをキャッチするようにしました。 #5546
  • サードパーティパッケージにdjangorestframework-rapidjsonを追加しました。 #5549
  • drf_create_tokenコマンドのテストカバレッジを増やしました。 #5550
  • Python 3.6のサポートのためにtrove classifierを追加しました。 #5555
  • Travis CI構成にpipキャッシュのサポートを追加しました。 #5556
  • [wheel]セクションを、古いものであるため[bdist_wheel]に名前変更しました。 #5557
  • 無効なエスケープシーケンスの非推奨警告を修正しました。 #5560
  • インタラクティブドキュメントのエラーテンプレートを追加しました。 #5548
  • DecimalFieldに丸めパラメータを追加しました。 #5562
  • テスト中にキャッチされたすべてのBytesWarningを修正しました。 #5561
  • dict()とset()の呼び出しの代わりに、dictとsetのリテラルを使用するようにしました。 #5559
  • ImageFieldの検証パターンを変更し、DjangoImageFieldのバリデーターを使用するようにしました。 #5539
  • Python 2でのquery_stringにおけるunicode記号の処理を修正しました。 #5552

3.7.1

日付: 2017年10月16日

  • リクエスト内のブール値フィールドに対して、インタラクティブドキュメントが常にfalseを使用していた問題を修正しました。 #5492
  • Django 2.0 alphaとの互換性を改善しました。 #5500 #5503
  • スキーマの名前の衝突の処理を改善しました。 #5486
  • ドット付きsourceフィールドにデフォルト値を指定することに関する追加のドキュメントとテストを追加しました。 #5489

3.7.0

日付: 2017年10月6日

  • DjangoModelPermissionsが、ビューのget_queryset()メソッドを呼び出す前にユーザー認証を確実に行うように修正しました。副作用として、HTTPメソッドのパーミッションと認証チェックの順序が変わり、認証された場合にのみ405応答が返されるようになります。以前の動作を再現する場合は、詳細についてPRを参照してください。 #5376
  • APIViewapi_viewデコレータのexclude_from_schemaを非推奨にしました。必要に応じてschema = Noneまたは@schema(None)を設定してください。 #5422
  • タイムゾーン対応のDateTimeFieldは、常にUTCを使用するのではなく、シリアライズ中にアクティブまたはデフォルトのtimezoneを尊重するようになりました。 #5435

    createには指定された日時で、retrieveにはUTCでシリアライズされていたインスタンスの不整合を解消しました。 #3732

    後方互換性の問題が発生する可能性:日時文字列がUTCであることを前提としていた場合。クライアントに日時を解釈させるか、必要に応じてデフォルトまたはアクティブなタイムゾーン(ドキュメント)を設定をUTCに設定してください。

  • 非推奨ポリシーに沿って、DjangoFilterBackendを削除しました。代わりに、django_filters.rest_framework.FilterSetおよび/またはdjango_filters.rest_framework.DjangoFilterBackendを使用してください。 #5273

  • エンコード時にtimeからマイクロ秒を削除しないようにしました。datetimeと一貫性を持たせます。BCの変更: 以前はミリ秒のみがエンコードされていました。 #5440
  • Pythonのjsonモジュールで受け入れられる拡張浮動小数点値(nan, inf, -inf)に対して例外を発生させるためのSTRICT_JSON設定(デフォルトはTrue)を追加しました。BCの変更: 以前は、これらの値は対応する文字列に変換されていました。以前の動作を復元するには、STRICT_JSONFalseに設定してください。 #5265
  • CursorPaginatorクラスにpage_sizeパラメータのサポートを追加しました。 #5250
  • DEFAULT_PAGINATION_CLASSをデフォルトでNoneにするようにしました。BCの変更: ページネーションを有効にするためにだけPAGE_SIZEを設定していた場合は、DEFAULT_PAGINATION_CLASSを追加する必要があります。以前のデフォルトはrest_framework.pagination.PageNumberPaginationでした。このケースを検出するためのシステムチェック警告があります。ビューごとにページネーションクラスを設定している場合は、警告を抑制できます。 #5170
  • スキーマ生成でget_serializer_fieldsからのAPIExceptionをキャッチするようにしました。 #5443
  • include_docs_urlsを使用する際にカスタム認証およびパーミッションクラスを許可するようにしました。 #5448
  • バリデーターでの翻訳された文字列の評価を延期するようにしました。 #5452
  • 'ValidationError'例外に'detail'パラメータのデフォルト値を追加しました。 #5342
  • フレームワークに合わせてスキーマのget_filter_fieldsルールを調整しました。 #5454
  • テストマトリックスを更新してDjango 2.0を追加し、Django 1.8と1.9を削除しました。BCの変更: これにより、Django REST FrameworkでサポートされるバージョンからDjango 1.8とDjango 1.9が削除されます。 #5457
  • serializers.ModelFieldでの非推奨警告を修正しました。 #5058
  • get_querysetNoneを返した場合に、より明確なエラーメッセージを追加しました。 #5348
  • Responseのdataの説明に関するドキュメントを修正しました。 #5361
  • パッケージ化時のpycache/.pycの除外を修正しました。 #5373
  • ドット付きソースのデフォルト値処理を修正しました。 #5375
  • RequestFactoryに空のボディを渡すときに、content_typeが設定されていることを保証しました。 #5351
  • ErrorDetailのドキュメントを修正しました。 #5380
  • 汎用コンテンツフォームでオプションのコンテンツを許可するようにしました。 #5372
  • NullBooleanFieldでサポートされる値を更新しました。 #5387
  • モデル上のsourceを持つModelSerializerのカスタム名前付きフィールドを修正しました。 #5388
  • オブジェクトレベルのパーミッションを適切にチェックするように、MultipleFieldLookupMixinのドキュメント例を修正しました。 #5398
  • permissions.mdのget_object()の例を更新しました。 #5401
  • authtoken管理コマンドを修正しました。 #5415
  • スキーマ生成のマークダウンを修正しました。 #5421
  • ChoiceField.choicesを動的に設定できるようにしました。 #5426
  • プロジェクトレイアウトをクイックスタートに追加しました。 #5434
  • 'render_markdown'テンプレートタグで'apply_markdown'関数を再利用するようにしました。 #5469
  • ドキュメントにdrf-openapiパッケージへのリンクを追加しました。 #5470
  • ドキュメント文字列のコードハイライトをPygmentsで追加しました。 #5462
  • dataという名前のビューのドキュメントレンダリングを修正しました。 #5472
  • ドキュメント:'to_internal_value()'の検証動作を明確化しました。 #5466
  • APIException.strでの欠けていたsix.text_type()呼び出しを修正しました。 #5476
  • documentation.pyを文書化しました。 #5478
  • スキーマ生成における名前の衝突を修正しました。 #5464
  • リクエストオブジェクトを使用してDjangoのauthenticate関数を呼び出すようにしました。 #5295
  • coreapi JSを0.1.1に更新しました。 #5479
  • is_list_viewがRetrieveModel…ビューを認識するようにしました。 #5480
  • Django 1.8と1.9の互換性コードを削除しました。 #5481
  • DefaultRouterから非推奨のスキーマコードを削除しました。 #5482
  • ビューごとのカスタマイズを可能にするためにスキーマ生成をリファクタリングしました。BCの変更: SchemaGenerator.get_serializer_fieldsAutoSchema.get_serializer_fieldsとしてリファクタリングされ、view引数が削除されました。[#5354][gh5354]

3.6.xシリーズ

3.6.4

日付: 2017年8月21日

  • OrderingFilterの不正な形式のクエリパラメータを無視するようにしました。 #5131
  • 大規模なJSONリクエストを読み込む際のメモリフットプリントを改善しました。 #5147
  • ページネーションのスキーマ生成を修正しました。 #5161
  • HTML_CUTOFFNoneに設定されている場合の例外を修正しました。 #5174
  • Browsable APIがmultipart/form-dataを正しくサポートしていない問題を修正しました。 #5176
  • test_hyperlinked_related_lookup_url_encoded_existsを修正しました。 #5179
  • max_lengthがFileFieldのkwargsに含まれることを確認しました。 #5186
  • url_pathに中括弧が含まれる場合のlist_routedetail_routeを修正しました。 #5187
  • DRFユーザートークンを作成するためのDjango管理コマンドを追加しました。 #5188
  • APIドキュメントテンプレートがユーザー認証をチェックしないようにしました。 #5162
  • OneToOneFieldがプライマリキーでもある場合の特別なケースを修正しました。 #5192
  • アクセシビリティのために、base.htmlにaria-labelと新しいリージョンを追加しました。 #5196
  • api.jsでネストされたAPIパラメータを引用符で囲むようにしました。 #5214
  • ディスパッチの前にViewSetのargs/kwargs/requestを設定するようにしました。 #5229
  • SlugFieldにユニコードサポートを追加しました。 #5231
  • Raw Dataフォームの初期コンテンツにHiddenFieldが表示される問題を修正しました。 #5259
  • 無効なタイムゾーン解析時に検証エラーを発生させるようにしました。 #5261
  • SearchFilterのto-many動作/パフォーマンスを修正しました。 #5264
  • 連結された比較を簡略化し、軽微なコード修正を行いました。 #5276
  • RemoteUserAuthentication、ドキュメント、およびテスト。 #5306
  • "フィールドのルートとコンテキストプロパティをキャッシュした"を元に戻しました。 #5313
  • スキーマにおけるリストフィールドの内省を修正しました。 #5326
  • 複数のネストされたメソッドと追加メソッドのインタラクティブドキュメントを修正しました。 #5334
  • 未定義のテンプレート変数 "schema" を修正/削除しました。 #5346

3.6.3

日付: 2017年5月12日

  • URL検索の結果がValidationErrorになる場合に404を返すようにしました。 (#5126)
  • APIスキーマ生成時にクラスベースビューでhttp_method_namesを尊重するようにしました。 (#5085)
  • LimitOffsetPaginationのオーバーライドされたget_limitがすべてのレコードを返すことを許可しました。 (#4437)
  • ListSerializerの部分的な更新を修正しました。 (#4222)
  • ブラウズ可能なAPIでJSONFieldコントロールを正しくレンダリングするようにしました。 (#4999, #5042)
  • 指定されたタイムゾーンの無効な日時に対してバリデーションエラーを発生させるようにしました。 (#4987)
  • ドキュメントとスキーマのショートカットをURLのサブセットに制限できるようにしました。 (#4979)
  • page_size属性を持たないページネーターに関するSchemaGeneratorエラーを解決しました。 (#5086, #3692)
  • スペースの代わりに%20を含む文字列に対するHyperlinkedRelatedFieldの例外を解決しました。 (#4748, #5078)
  • カスタマイズ可能なスキーマジェネレータークラスを実装しました。 (#5082)
  • レスポンス内の既存のVaryヘッダーを上書きするのではなく、更新するようにしました。 (#5047)
  • ビューインスタンスに.as_view()を渡すことをサポートしました。 (#5053)
  • ビューで設定がオーバーライドされたときに正しい例外ハンドラーを使用するようにしました。 (#5055, #5054)
  • Booleanフィールドで「yes」と「no」の値がサポートされるように更新しました。 (#5038)
  • ChoiceFieldの一意性バリデーターを修正しました。 (#5004, #5026, #5028)
  • APIドキュメント内のJavaScriptをクリーンアップしました。 (#5001)
  • 有効な場合にAPIスキーマにURLパスの正規表現を含めるようにしました。 (#5014)
  • coreapi TokenAuthenticationでスキームを正しく設定するようにしました。 (#5000, #4994)
  • ViewSetのHEADリクエストで405を返さないようにしました。 (#4705, #4973, #4864)
  • extra_kwargsで「source」の使用をサポートしました。 (#4688)
  • schema.jsの無効なコンテンツタイプを修正しました。 (#4968)
  • DjangoFilterBackendの継承に関する問題を修正しました。 (#5089, #5117)

3.6.2

日付: 2017年3月10日

  • APIドキュメントでSafariとIEをサポートしました。 (#4959, #4961)
  • APIドキュメントのテンプレートタグに欠落していたmark_safeを追加しました。 (#4952, #4953)
  • 欠落していたglyphiconフォントを追加しました。 (#4950, #4951)
  • APIドキュメントで1対1のフィールドを修正しました。 (#4955, #4956)
  • テストをクリーンアップしました。 (#4949)

3.6.1

日付: 2017年3月9日

  • markdownの依存関係がオプションであることを保証しました。 (#4947)

3.6.0

日付: 2017年3月9日

リリース発表をご覧ください。


3.5.xシリーズ

3.5.4

日付: 2017年2月10日

  • ListFieldにmax_lengthおよびmin_length引数を追加しました。 (#4877)
  • ビューごとのカスタム例外ハンドラーのサポートを追加しました。 (#4753)
  • シリアライザサブクラスで宣言されたフィールドの無効化をサポートしました。 (#4764)
  • @list_routeおよび@detail_routeエンドポイントでカスタムビュー名をサポートしました。 (#4821)
  • カスタムユーザーモデルが使用されている場合、ログインテンプレートのフィールドのラベルを修正しました。 (#4841)
  • ドキュメント文字列から生成された説明の空白を修正しました。 (#4759, #4869, #4870)
  • スキーマレンダラーなしでビューからスキーマが返されたときのより良いエラーレポート。 (#4790)
  • prefetch_relatedが使用されている場合のPUTリクエストの返されたレスポンスを修正しました。 (#4661, #4668)
  • ブレッドクラムビュー名を修正しました。 (#4750)
  • 完全に修飾されたURLを保証するRequestsClientを修正しました。 (#4678)
  • 一部のケースにおける書き込み可能なネストされたフィールドチェックの誤った動作を修正しました。 (#4634, #4669)
  • Djangoの非推奨警告を解決しました。 (#4712)
  • テストケースのさまざまなクリーンアップ。

3.5.3

日付: 2016年11月7日

  • 誤ったFilterSetの非推奨警告を発生させないようにしました。 (#4660, #4643, #4644)
  • ビューの許可クラスが404を発生させた場合でも、スキーマの生成で404を発生させないようにしました。 (#4645, #4646)
  • 入力コントロールのautofocusサポートを追加しました。 (#4650)

3.5.2

日付: 2016年11月1日

  • Python 2.7で例外トレースバックを復元しました。 (#4631, #4638)
  • 管理者コンソールで辞書を適切に表示するようにしました。 (#4532, #4636)
  • 可変引数、キーワード引数を持つis_simple_callableを修正しました。 (#4622, #4602)
  • BooleanFieldで「on」/「off」リテラルをサポートしました。 (#4640, #4624)
  • 値のクエリセットのカーソルページネーションを有効にしました。 (#4569)
  • Throttled例外のget_full_details()のサポートを修正しました。 (#4627)
  • FilterSetプロキシを修正しました。 (#4620)
  • シリアライザーフィールドのインポートを明示的にしました。 (#4628)
  • 冗長なリクエストアダプターを削除しました。 (#4639)

3.5.1

日付: 2016年10月21日

  • rest_framework/compat.pyのインポートを修正しました。 (#4612, #4608, #4601)
  • スキーマのベースパス生成のバグを修正しました。 (#4611, #4605)
  • 単一アイテムを含むListSerializerの破損したケースを修正しました。 (#4609, #4606)
  • Python 3.5互換のためにベアraiseを削除しました。 (#4600)

3.5.0

日付: 2016年10月20日


3.4.xシリーズ

3.4.7

日付: 2016年9月21日

  • request.POSTにすでにアクセスされている場合のリクエスト解析のフォールバック動作。 (#3951, #4500)
  • RegexFieldの回帰を修正しました。 (#4489, #4490, #2617)
  • admin.htmlのカンマの欠落によるCSRFエラー。 (#4472, #4473)
  • 空のコンテキストでのレスポンスレンダリングを修正しました。 (#4495)
  • APIリストでのインデントの回帰を修正しました。 (#4493)
  • api_viewでデコレートされたビューのResolverMatch.func_nameに誤った値が設定されていた問題を修正しました。 (#4465, #4462)
  • パスにユニコード引数が含まれる場合のAPIClient.get()を修正しました。 (#4458)

3.4.6

日付: 2016年8月23日

  • ブラウズ可能なAPIで不正な形式のJavascriptを修正しました。 (#4435)
  • スキーマフィールドからHiddenFieldをスキップしました。 (#4425, #4429)
  • 元の例外トレースバックを表示するようにCreateを改善しました。 (#3508)
  • PKのみの関連フィールドのAdminRenderer表示を修正しました。 (#4419, #4423)

3.4.5

日付: 2016年8月19日

  • デバッグエラー処理を改善しました。 (#4416, #4409)
  • カスタムCSRF_HEADER_NAME設定を許可しました。 (#4415, #4410)
  • スキーマ生成時に、ビューセットに .action 属性を含めるようにしました。(#4408, #4398)
  • request.FILES のアイテムを request.POST に含めないようにしました。(#4407)
  • 複数チェックボックスのレンダリングを修正しました。(#4403)
  • Field.get_default のドキュメンテーションを修正しました。(#4404)
  • README の utf8 文字を ASCII 文字に置き換えました。(#4412)

3.4.4

日付: 2016年8月12日

  • スキーマ生成時にビューが完全に初期化されるようにしました。(#4373, #4382, #4383, #4279, #4278)
  • フォームフィールドの説明をスキーマに追加しました。(#4387)
  • スキーマエンドポイントのカテゴリ生成を修正しました。(#4391, #4394, #4390, #4386, #4376, #4329)
  • ページネーション時に空のクエリパラメータを削除しないようにしました。(#4392, #4393, #4260)
  • LimitOffsetPagination で結果が空の場合にクエリを再実行しないようにしました。(#4201, #4388)
  • CharField の型検証を厳密にしました。(#4380, #3394)
  • RelatedField.choices は、文字列以外の値を保持するようにしました。(#4111, #4379, #3365)
  • 垂直フォームスタイルでのチェックボックスのレンダリングに関するテストケースを追加しました。(#4378, #3868, #3868)
  • 閲覧可能な API でエラーのトレースバック HTML を表示するようにしました。(#4042, #4172)
  • ALLOWED_VERSIONS および DEFAULT_VERSION がない場合の処理を修正しました。#4370
  • DecimalField で max_digits=None を許可するようにしました。(#4377, #4372)
  • リレーショナル選択肢をレンダリングする際にクエリセットを制限するようにしました。(#4375, #4122, #3329, #3330, #3877)
  • ChoiceField、MultipleChoiceField および文字列以外の選択肢でのフォーム表示を修正しました。(#4374, #4119, #4121, #4137, #4120)
  • TemplateHTMLRenderer.resolve_context() のフォールバックメソッドの呼び出しを修正しました。(#4371)

3.4.3

日付: 2016年8月5日

  • 古い TemplateHTMLRenderer の内部 API のユーザー向けのフォールバックを含めました。(#4361)

3.4.2

日付: 2016年8月5日

  • スキーマ生成時に 'as_view' に渡された kwargs を含めるようにしました。(#4359, #4330, #4331)
  • Django 1.10+ では、request.user.is_authenticated をメソッドではなくプロパティとしてアクセスするようにしました。(#4358, #4354)
  • スキーマから HEAD を除外しました。(#4357)
  • extra_kwargs が一意性 kwargs より優先されるようにしました。(#4198, #4199, #4349)
  • コードのインデントでタブが使用されている場合の説明を修正しました。(#4345, #4347)*
  • TemplateHTMLRenderer のテンプレートコンテキスト生成を変更しました。(#4236)
  • シリアライザのデフォルトは、部分更新に含めないようにしました。(#4346, #3565)
  • ファイル名が含まれていない場合の FileUploadParser の一貫した動作と説明的なエラーを追加しました。(#4340, #3610, #4292, #4296)
  • DecimalField が入力された数字を量子化するようにしました。(#4339, #4318)
  • IP フィールドの文字列以外の入力を処理するようにしました。(#4335, #4336, #4338)
  • スキーマ生成にルート URL が含まれる場合、先頭のスラッシュの処理を修正しました。(#4332)
  • allow_null オプションを指定した DictField のテストケースを追加しました。(#4348)
  • Django 1.10 ベータ版から Django 1.10 にテストを更新しました。(#4344)

3.4.1

日付: 2016年7月28日

  • DefaultRouterroot_renderers 引数を追加しました。(#4323, #4268)
  • url および schema_url 引数を追加しました。(#4321, #4308, #4305)
  • 一意性の検証は、デフォルトを持つ読み取り専用フィールドに適用する必要があるようにしました。(#4316, #4294)
  • スキーマジェネレーターで view.format_kwarg を設定するようにしました。(#4293, #4315)
  • pagination_class = None のビューのスキーマジェネレーターを修正しました。(#4314, #4289)
  • get_serializer_class を持たないビューのスキーマジェネレーターを修正しました。(#4265, #4285)
  • Accept および Content-Type ヘッダーのメディアタイプパラメータを修正しました。(#4287, #4313, #4281)
  • エラーメッセージで object_name の代わりに verbose_name を使用するようにしました。(#4299)
  • Twitter Bootstrap をマイナーバージョンアップデートしました。(#4307)
  • SearchFilter が関連フィールドで使用するとエラーが発生する問題を修正しました。(#4302, #4303, #4298)
  • RFC 4918 ステータスコードのサポートを追加しました。(#4291)
  • 構築された wheel に LICENSE.md を追加しました。(#4270)
  • 3.4 以降、"複雑な" フィールドをシリアライズすると値の代わりに None が返される問題を修正しました。(#4272, #4273, #4288)

3.4.0

日付: 2016年7月14日

  • JSON 出力でマイクロ秒を削除しないようにしました。(#4256)
  • ISO 8601 日付時刻シリアライズにわずかに異なる2つの形式がありました。(#4255)
  • メディアタイプパラメータの誤った包含を修正しました。(#4254)
  • レスポンスの Content-Type が不正になる可能性を修正しました。(#4253)
  • 一部のプラットフォームでの setup.py エラーを修正しました。(#4246)
  • coreapi の代替形式を別々のパッケージに移動しました。(#4244)
  • DecimalField に localize キーワード引数を追加しました。(#4233)
  • カスタムリストルートと詳細ルートのルーターに関する問題を修正しました。(#4229)
  • ネストされた名前空間での名前空間バージョニングを修正しました。(#4219)
  • 一意性の検証を堅牢にしました。(#4217)
  • must_call_distinct のマイナーなリファクタリングを行いました。(#4215)
  • CursorPagination でオーバーライド可能なオフセットカットオフを修正しました。(#4212)
  • 日付/時刻フィールドで文字列をそのまま渡すようにしました。(#4196)
  • required=False がリレーショナルフィールドで有効であることを確認するテストを追加しました。(#4195)
  • LimitOffsetPagination で limit=0 がデフォルトの制限に戻るようにしました。(#4194)
  • unique_together 検証から read_only=True フィールドを除外し、ドキュメントを追加しました。(#4192)
  • JSON でのバイト文字列の処理を修正しました。(#4191)
  • JSONField(binary=True) はバイナリ文字列を使用していることを示しますが、JSONRenderer はサポートしていません。(#4187)
  • JSONField(binary=True) はバイナリ文字列を使用していることを示しますが、JSONRenderer はサポートしていません。(#4185)
  • 閲覧可能な API でのフォームレンダリングをより堅牢にしました。(#4181)
  • ListSerializer の .validated_data および .errors の空の場合を辞書ではなくリストにしました。(#4180)
  • スキーマとクライアントライブラリに関する修正です。(#4179)
  • AUTH_USER_MODEL 互換性プロパティを削除しました。(#4176)
  • 既存の非推奨警告をクリーンアップしました。(#4166)
  • Django 1.10 のサポート。(#4158
  • jQuery のバージョンを 1.12.4 に更新。(#4157
  • OrderingFilter のデフォルトの振る舞いをより堅牢に。(#4156
  • description.py のコードとテストを削除。(#4153
  • guardian.VERSION をタプルでラップ。(#4149
  • kwargs を持つフィールドのバリデーターを改良。#4146
  • ListField、DictField の子要素における None 値の表現を修正。(#4118
  • midnight 値に対する TimeField の表現を解決。(#4107
  • POST/DELETE リクエスト後のリダイレクトに対する AdminRenderer で適切なステータスコードを設定。(#4106
  • TimeField のレンダーが 00:00:00 ではなく None を返すように修正。(#4105
  • zh-hans および zh-hant ロケールパスの名前が誤っていたのを修正。(#4103
  • limit が 0 の場合に例外が発生するのを防止。(#4098
  • TokenAuthentication: ヘッダーでカスタムキーワードを許可。(#4097
  • 不正なパディングがされた HTTP ベーシック認証ヘッダーを処理。(#4090
  • LimitOffset pagination で limit=0 の場合に Browsable API がクラッシュする問題を修正。(#4079
  • DecimalField の任意精度サポートを修正。(#4075
  • カスタム CSRF クッキー名のサポートを追加。(#4049
  • #4035 で導入されたリグレッションを修正。(#4041
  • 認証ビューでパーミッションが失敗した場合、403 を返すように修正。(#4040
  • string_types / text_types の混同を修正。(#4025
  • OPTIONS リクエストで関連フィールドの選択肢をリストしないように修正。(#4021
  • タイプミスを修正。(#4008
  • ビューの初期化順序を修正。(#4006
  • Python 3.4 での DjangoObjectPermissionsFilter の型エラーを修正。(#4005
  • 非推奨の Query.aggregates の使用を修正。(#4003
  • ドキュメント文字列の前後の空白行を修正。(#4002
  • limit が 0 の場合の管理ページでのページネーションを修正。(#3990
  • OrderingFilter の調整。(#3983
  • 必須でないシリアライザーの関連フィールド。(#3976
  • チュートリアルでの "@api_view" のより安全な呼び出し方法を使用。(#3971
  • ListSerializer が unique_together 制約を処理しない問題を修正。(#3970
  • 不足していたマイグレーションファイルを追加。(#3968
  • OrderingFilter はデフォルトフィールドを決定するために get_serializer_class() を呼び出す必要がある。(#3964
  • テストおよび compat から古い Django のチェックを削除。(#3953
  • 任意の serializer.Field に対して、initial の値として呼び出し可能オブジェクトをサポート。(#3943
  • SearchFilter で不要な distinct() 呼び出しを防止。(#3938
  • None の UUID ForeignKey シリアライズを修正。(#3936
  • EOL の Django 1.7 をドロップ。(#3933
  • シリアライザーのエラーメッセージに不足していたスペースを追加。(#3926
  • _force_text_recursive のタイプミスを修正。(#3908
  • field.rel に関する Django 2.0 の非推奨警告に対応しようとした。(#3906
  • リストを持つネストされたシリアライザーを使用したマルチパートデータの解析を修正。(#3820
  • 異なる名前空間への API URL の解決。(#3816
  • Browsable API フォームで help_text を HTML エスケープしないように修正。(#3812
  • OPTIONS リクエストで選択肢フィールド内の可能なすべての外部キーをフェッチして表示する問題を修正。(#3751
  • Django 1.9 の非推奨警告を修正。(#3729
  • #3598 のテストケース。(#3710
  • 検索フィルターの複数値サポートを追加。(#3541
  • 順序付けフィルターで get_serializer_class を使用。(#3487
  • many=True のシリアライザーは空の辞書ではなく空のリストを返す必要がある。(#3476
  • LimitOffsetPagination の limit=0 を修正。(#3444
  • バリデーターが文字列評価を遅延させ、新しい文字列形式を処理できるようにした。(#3438
  • フィールドが無効な場合、ユニークバリデーターが実行され、中断される問題を修正。(#3381
  • オーバーライドされた View.get_view_name() をパンくずリストで無視しないように修正。(#3273
  • シリアライザーによるレンダリングが失敗した場合にフォームのレンダリングを再試行する。(#3164
  • ユニーク制約がネストされたシリアライザーの更新を妨げる問題を修正。(#2996
  • ユニークバリデーターは除外された (read_only) フィールドに対して実行されるべきではない。(#2848
  • UniqueValidator がネストされたオブジェクトに対して例外を発生させる問題を修正。(#2403
  • lookup_typelookup_expr を優先して非推奨になりました。(#4259

3.3.xシリーズ

3.3.3

日付: 2016年3月14日

  • テンプレートからバージョン文字列を削除。レポートと修正をしてくれた @blag に感謝します。(#3878, #3913, #3912
  • BooleanField の垂直 HTML レイアウトを修正。修正してくれた Mikalai Radchuk に感謝します。(#3910
  • Django 1.8 での非推奨警告を抑制。修正してくれた Simon Charette に感謝します。(#3903
  • authtoken の国際化。修正してくれた Michael Nacharov に感謝します。(#3887, #3968
  • authtoken アプリケーションが宣言されていない場合、Token モデルを abstract として修正。レポートしてくれた Adam Thomas に感謝します。(#3860, #3858
  • Markdown のバージョン互換性を改善。修正してくれた Michael J. Schultz に感謝します。(#3604, #3842
  • QueryParameterVersioningDEFAULT_VERSION 設定を使用しない問題を修正。修正してくれた Brad Montgomery に感謝します。(#3833
  • モデルに明示的な on_delete を追加。修正してくれた Mads Jensen に感謝します。(#3832
  • Python 2 の Unicode で動作するように DateField.to_representation を修正。修正してくれた Mikalai Radchuk に感謝します。(#3819
  • TimeField が文字列時間を処理しない問題を修正。修正してくれた Areski Belaid に感謝します。(#3809
  • Meta.extra_kwargs の更新を回避。レポートと修正をしてくれた Kevin Massey に感謝します。(#3805, #3804
  • ネストされたバリデーションエラーが誤ってレンダリングされる問題を修正。修正してくれた Craig de Stigter に感謝します。(#3801
  • django-crispy-forms での CSRF およびボタンの欠落の問題を回避する方法を文書化。レポート、分析、修正をしてくれた Emmanuelle Delescolle、José Padilla、Luis San Pablo に感謝します。(#3787, #3636, #3637
  • Rest Framework の設定ファイルセットアップ時間を改善。レポートしてくれた Miles Hutson と、修正してくれた Mads Jensen に感謝します。(#3786, #3815
  • Django 1.9 との authtoken の互換性を改善。修正してくれた S. Andrew Sheppard に感謝します。(#3785
  • モデルの DecimalField からの Min/MaxValueValidator の転送を修正。修正してくれた Kevin Brown に感謝します。(#3774
  • Browsable API の HTML タイトルを改善。レポートと修正をしてくれた Mike Lissner に感謝します。(#3769
  • AutoFilterSetdefault_filter_set を継承するように修正。修正してくれた Tom Linford に感謝します。(#3753
  • 新しい中国語の言語コードを処理するように transifex 設定を修正。レポートと修正をしてくれた @nypisces に感謝します。(#3739
  • DateTimeField が空の値を正しく処理しない問題を修正。レポートと修正をしてくれた Mick Parker に感謝します。(#3731, #3726
  • 削除された rest_framework 設定を設定しようとした場合にエラーを発生させるように修正。修正してくれた Luis San Pablo に感謝します。(#3715
  • AdminRenderer の post フォームに欠落していた csrf_token を追加。修正してくれた Piotr Śniegowski に感謝します。(#3703
  • 正しい to_field を使用するように _get_reverse_relationships() をリファクタリング。修正してくれた Benjamin Phillips に感謝します。(#3696
  • RelatedFieldget_queryset の使用を文書化。修正してくれた Ryan Hiebert に感謝します。(#3605
  • HyperlinkRelatedField.get_url での空の pk の検出を修正。修正してくれた @jslang に感謝します。(#3962

3.3.2

日付: 2015年12月14日

  • ListField は入力がリストであることを強制します。(#3513
  • Raw dataフォームを隠す回帰を修正しました。(#3600, #3578
  • Python 3.5の互換性を修正しました。(#3534, #3626
  • pagination.PageNumberPagination でカスタムの Django Paginator を設定できるようにしました。(#3631, #3684
  • to_fields 属性がないリレーショナルフィールドを修正しました。(#3635, #3634
  • Django 1.9 の template.render 非推奨警告を修正しました。(#3654
  • ブラウズ可能なAPIレンダラーでレスポンスヘッダーをソートします。(#3655
  • Django 1.9+ で related_objects API を使用します。(#3656, #3252
  • 削除時に確認モーダルを追加しました。(#3228, #3662
  • has_[object_]permissions を呼び出す際に、以前は隠されていた AttributeError および TypeError を表示します。(#3668
  • Django 1.8 のマルチテンプレートエンジンと DRF の互換性を持たせます。(#3672
  • フォームをレンダリングする際に、空文字列も処理するように NestedBoundField を更新しました。(#3677
  • 無効な入力タイプを適切にキャッチするように UUID の検証を修正しました。(#3687, #3679
  • キャッシュの問題を修正しました。(#3628, #3701
  • filter_class がないビューの Admin と API ブラウザを修正しました。(#3705, #3596, #3597
  • rest_framework.urls に app_name を追加しました。(#3714
  • authtoken のビューをURLバージョン管理をサポートするように改善しました。(#3718, #3723

3.3.1

日付: 2015年11月4日

  • request.POST にアクセスする際の解析バグを解決しました。(#3592
  • 主キーを参照する to_field を正しく処理します。(#3593
  • filter_class が定義されていない場合でもフィルターHTMLをレンダリングできるようにしました。(#3560
  • 管理者レンダリングの問題を修正しました。(#3564, #3556
  • DecimalValidator の問題を修正しました。(#3568

3.3.0

日付: 2015年10月28日

  • フィルターのHTMLコントロール。(#3315
  • Forms API。(#3475
  • AJAX ブラウズ可能なAPI。(#3410
  • JSONField を追加しました。(#3454
  • ModelSerializer リレーショナルフィールドを作成するときに to_field を正しくマッピングします。(#3526
  • FilePathField をシリアライザーフィールドにマッピングするときにキーワード引数を含めます。(#3536
  • ModelSerializer の一意性制約に対して適切なモデルの error_messages をマップします。(#3435
  • TextField からマップされた ModelSerializer フィールドの max_length 制約を含めます。(#3509
  • Django 1.9 のサポートを追加しました。(#3450, #3525
  • Django 1.5 および 1.6 のサポートを削除しました。(#3421, #3429
  • 'south' マイグレーションを削除しました。(#3495

3.2.xシリーズ

3.2.5

日付: 2015年10月27日

  • オプションのログアウトタグで username をエスケープします。(#3550

3.2.4

日付: 2015年9月21日

  • ViewSet.search_fields 属性がない場合にエラーが発生しないようにしました。(#3324, #3323
  • many=True のシリアライザーで allow_empty が機能しない問題を修正しました。(#3361, #3364
  • DurationField が整数を受け入れるようにしました。(#3359
  • マルチパートリクエストで複数レベルの辞書がサポートされていませんでした。(#3314
  • HTTP PATCH での ListField の切り捨てを修正しました。(#3415, #2761

3.2.3

日付: 2015年8月24日

  • セレクトドロップダウンを制限するための html_cutoffhtml_cutoff_text を追加しました。(#3313
  • SearchFilter に正規表現スタイルを追加しました。(#3316
  • 空白のHTMLフィールドを設定する際の問題を解決しました。(#3318) (#3321)
  • ブラウズ可能なAPIフォームで既存の「複数選択」の値を正しく表示します。(#3290
  • IPAddressField の重複した検証メッセージを解決しました。([#3249gh3249) (#3250)
  • ページネーションが無効になっている場合でも、管理レンダラーが引き続き機能するように修正しました。(#3275
  • count=0, offset=0 の場合の LimitOffsetPagination のエラーを解決しました。(#3303

3.2.2

日付: 2015年8月13日

  • リレーショナルフィールドの選択入力を表示する際に使用する display_value() メソッドを追加しました。(#3254
  • BooleanField チェックボックスが誤ってチェック済みと表示される問題を修正しました。(#3258
  • 空のチェックボックスがすべての場合において BooleanFieldFalse に適切に設定するようにします。(#2776
  • 誤った非推奨エラーを発生させることなく WSGIRequest.FILES プロパティを使用できるようにします。(#3261
  • フォームでネストされたシリアライザーをレンダリングする際の問題を解決しました。(#3260
  • ユーザーが誤ってデータをではなくシリアライザーインスタンスをレスポンスに渡した場合にエラーを発生させます。(#3241

3.2.1

日付: 2015年8月7日

  • 選択肢がないリレーショナルセレクトウィジェットのレンダリングを修正しました。(#3237
  • 1, 0 が管理インターフェースで true, false としてレンダリングされるのを修正しました。(#3227
  • HTMLフォーム入力に単一値がある ListFields を修正しました。(#3238
  • Django の HTTPRequest クラスとの互換性のために request.FILES を許可します。(#3239

3.2.0

日付: 2015年8月6日

  • AdminRenderer を追加しました。(#2926
  • FilePathField を追加しました。(#1854
  • ListFieldallow_empty を追加しました。(#2250
  • django-guardian 1.3 をサポートします。(#3165
  • グループ化された選択肢をサポートします。(#3225
  • ブラウズ可能なAPIでエラーフォームをサポートします。(#3024
  • 許可クラスがエラーメッセージをカスタマイズできるようにします。(#2539
  • ハイパーリンクフィールドで source=<method> をサポートします。(#2690
  • ListField(allow_null=True) は、リスト内の null 項目ではなく、リスト値として null を許可するようになりました。(#2766
  • ManyToMany()allow_empty=False に、ManyToMany(blank=True)allow_empty=True にマッピングします。(#2804
  • 主キーフィールドのカスタムシリアル化スタイルをサポートします。(#2789
  • OPTIONS リクエストはネストされた表現をサポートします。(#2915
  • OPTIONS リクエストを使用するビューセットに対して view.action == "metadata" を設定します。(#3115
  • UUIDFieldallow_blank をサポートします。([#3130][gh#3130])
  • 401 または 403 レスポンスコードでビューのドキュメンテーションを表示しないようにします。(#3216
  • Django 1.8 の非推奨警告を解決しました。(#2886
  • DecimalField の検証を修正しました。(#3139
  • trim_whitespace=True で使用した場合の allow_blank=False の動作を修正しました。(#2712
  • 一部のフィールドの組み合わせが、無効な allow_blank 引数に誤ってマップされる問題を修正しました。(#3011
  • プリフェッチと変更されたクエリセットを使用した出力表現を修正しました。(#2704, #2727
  • CursorPagination に特定の無効なクエリパラメータが指定された場合のアサーションエラーを修正しました。(#2920)gh2920
  • TokenAuthentication でヘッダーに無効な文字が含まれている場合の UnicodeDecodeError を修正しました。(#2928
  • @non_atomic_requests デコレーターによるトランザクションのロールバックを修正しました。(#3016
  • SearchFilter を使用したOracleデータベースでの重複結果の問題を修正しました。(#2935
  • ブラウズ可能なAPIフォームでのチェックボックスの配置とレンダリングを修正しました。(#2783
  • 表現で "url": null を使用する必要がある保存されていないファイルオブジェクトを修正しました。(#2759
  • ブラウズ可能なAPIでのフィールド値のレンダリングを修正しました。(#2416
  • HStoreFieldDictField マッピングに allow_blank=True を含めるように修正しました。(#2659
  • その他、多数のクリーンアップ、エラーメッセージの改善、プライベートAPI、マイナーな修正。

3.1.xシリーズ

3.1.3

日付: 2015年6月4日

  • DurationField を追加しました。(#2481, #2989
  • UUIDFieldformat 引数を追加しました。(#2788, #3000
  • multipart/form-data を使用した部分的な更新で MultipleChoiceField が誤って空になります。(#2993, #2894
  • 読み取り専用の RelatedField に関連するオプションのバグを修正しました。(#2981, #2811
  • unique_together リレーションを持つネストされたシリアライザーを修正しました。(#2975
  • ChoiceField/MultipleChoiceField の表現で予期しない値を許可します。(#2839, #2940
  • ATOMIC_REQUESTS が設定されている場合は、エラー時にトランザクションをロールバックします。(#2887, #2034
  • override_method の None-ness にかかわらず、ビューのアクションを設定します。(#2933
  • DecimalField2E+2 を 200 として受け入れ、小数点以下を正しく検証します。(#2948, #2947
  • カスタムUserModelusernameを変更した場合の基本認証をサポートします。(#2952
  • IPAddressFieldの改善。(#2747, #2618, #3008
  • サブクラス化を容易にするためのDecimalFieldの改善。(#2695

3.1.2

日付: 2015年5月13日

  • DateField.to_representationが文字列と空の値を処理できるようになりました。(#2656, #2687, #2869
  • HTTP標準のデフォルトの理由句を使用します。(#2764, #2763
  • 抽象モデルでModelSerializerが使用された場合にエラーを発生させます。(#2757, #2630
  • HyperLinkedRelatedFieldでの非APIのview_nameのリバース処理。(#2724, #2711
  • 関連フィールドでpkを厳密に要求しないようにします。(#2745, #2754
  • メタデータがnullのブール型フィールドを検出します。(#2762
  • ネストされたシリアライザでのdepthの適切な処理。(#2798
  • ページネータなしでビューセットを表示します。(#2807
  • パーミッションで非推奨の.model属性をチェックしないようにします。(#2818
  • 整数フィールドを整数と文字列に制限します。(#2835, #2836
  • コンパイル済みの10進数正規表現を使用するようにIntegerFieldを改善します。(#2853
  • 空のquerysetがAssertionErrorを発生させないようにします。(#2862
  • DjangoModelPermissionsget_querysetに依存するようにします。(#2863
  • コンテンツネゴシエーションが有効な状態でAcceptHeaderVersioningをチェックします。(#2868
  • DjangoObjectPermissionsget_querysetを定義するビューを使用できるようにします。(#2905

3.1.1

日付: 2015年3月23日

  • セキュリティ修正:ブラウズ可能なAPIでタブ切り替えCookie名をエスケープします。
  • ビューにget_serializerメソッドが存在しない場合でも、serializer_classが使用されている場合は、ブラウズ可能なAPIに入力フォームを表示します。(#2743
  • AuthTokenSerializerにパスワード入力を使用します。(#2741
  • 次のボタンの後ろにあるアンカー閉じタグの欠落を修正します。(#2691
  • ビューセットでのlookup_url_kwargの処理を修正します。(#2685, #2591
  • apps.pyrest_framework.viewsをインポートする際の問題を修正します。(#2678
  • PAGE_SIZEが設定されていない場合、LimitOffsetPaginationがTypeErrorを発生させます。(#2667, #2700
  • min_valueフィールドエラーメッセージに対するドイツ語翻訳がmax_valueを参照しています。(#2645
  • MergeDictを削除します。(#2640
  • 関連フィールドを持つ保存されていないモデルのシリアル化をサポートします。(#2637, #2641
  • radio.htmlの選択肢で空白/nullを許可します。(#2631

3.1.0

日付: 2015年3月5日

詳細については、3.1リリース発表をご覧ください。


3.0.xシリーズ

3.0.5

日付: 2015年2月10日

  • _closable_objectsがピクルを壊すバグを修正しました。(#1850, #2492
  • Throttlingで非標準のUserモデルを許可します。(#2524
  • TokenAuthenticationの移行でカスタムUser.db_tableをサポートします。(#2479
  • Requestオブジェクトでの誤解を招くAttributeErrorのトレースバックを修正します。(#2530, #2108
  • 部分更新時にManyRelatedField.get_valueがフィールドをクリアします。(#2475
  • コードから「.model」ショートカットを削除しました。(#2486
  • detail_routeおよびlist_routeの変更可能な引数を修正します。(#2518
  • TokenAuthenticationでトークンを取得する際にユーザーオブジェクトをプリフェッチします。(#2519

3.0.4

日付: 2015年1月28日

  • Django 1.8a1のサポート。(#2425, #2446, #2441
  • DictFieldを追加し、Django 1.8 HStoreFieldをサポートします。(#2451, #2106
  • UUIDFieldを追加し、Django 1.8 UUIDFieldをサポートします。(#2448, #2433, #2432
  • BaseRenderer.renderNotImplementedErrorを発生させるようになりました。(#2434
  • Python 2.6でのtimedelta JSONシリアル化を修正します。(#2430
  • ResultDictResultListが標準のdict/listとして表示されるようになりました。(#2421
  • Webブラウズ可能なAPIページのHTMLフォームで可視のHiddenFieldを修正します。(#2410
  • RelatedField.choicesOrderedDictを使用します。(#2408
  • HTTP_X_FORWARDED_FORを使用する場合のident形式を修正します。(#2401
  • スロットリングを使用中にmemcachedで無効なキーを修正します。(#2400
  • バージョン3.xでFileUploadParserを修正します。(#2399
  • シリアライザの継承を修正します。(#2388
  • ReturnDictでのキャッシングの問題を修正します。(#2360

3.0.3

日付: 2015年1月8日

  • models.DateFieldでのMinValueValidatorを修正します。(#2369
  • ページネーションを使用するときのシリアライザのコンテキストの欠落を修正します。(#2355
  • 名前空間付きルーターURLがDefaultRouterでサポートされるようになりました。(#2351
  • required=Falseを使用すると、出力の値の省略が許可されます。(#2342
  • models.TextFieldにtextarea入力を使用します。(#2340
  • 必要に応じて、ページネーションにカスタムのListSerializerを使用します。(#2331, #2327
  • 空白のHTMLフィールドでnullと''を使用した場合の動作を改善します。(#2330
  • exclude内のフィールドがモデルフィールドであることを確認します。(#2319
  • IntegerFieldmax_length引数の非互換性を修正します。(#2317
  • 3.0シリアライザのYAMLエンコーダーを修正します。(#2315, #2283
  • 空のHTMLフィールドの動作を修正します。(#2311, #1101
  • フィールド属性を無視するメタクラス属性depthを修正します。(#2287
  • format_suffix_patternsがDjangoのi18n_patternsで機能するように修正します。(#2278
  • url_pathを使用して、カスタムアクションのルーターURLをカスタマイズする機能。(#2010
  • Django REST Frameworkをeggとしてインストールしないようにします。(#2386

3.0.2

日付: 2014年12月17日

  • request.userがレスポンスミドルウェアで利用できるようにします。(#2155
  • Client.logout()は既存のforce_authenticateもキャンセルします。(#2218, #2259
  • 誤ったシリアライザAPIの使用を防ぐための追加のアサーションとより良いチェック。(#2228, #2234, #2262, #2263, #2266, #2267, #2289, #2291
  • CharFieldmin_lengthメッセージを修正しました。(#2255
  • シリアライザのreprで発生する可能性のあるUnicodeDecodeErrorを修正します。(#2270, #2279
  • デフォルトが提供されている場合に、空のHTML値を修正します。(#2280, #2294
  • SlugRelatedFieldが複数選択入力として使用された場合にUnicodeEncodeErrorを発生させるのを修正します。(#2290

3.0.1

日付: 2014年12月11日

  • デフォルトのシリアライザcreate()が失敗した場合のより役立つエラーメッセージ。(#2013
  • データが有効でない場合にシリアライザを保存しようとするとエラーが発生するようにします。(#2098
  • FileUploadParserが空のファイル名と複数のアップロードハンドラーで破損するのを修正します。(#2109
  • 標準のdict関数をサポートするようにBindingDictを改善します。(#2135, #2163
  • ListSerializervalidate()を追加します。(#2168, #2225, #2232
  • JSONPレンダラーが一部の文字をエスケープし損なう問題を修正しました。 (#2169, #2195)
  • FileField に欠けていたデフォルトスタイルを追加しました。 (#2172)
  • ViewSet.as_view() を呼び出す際にアクションが必須になりました。 (#2175)
  • ChoiceFieldallow_blank を追加しました。 (#2184, #2239)
  • HTMLレンダラーの見た目の修正を行いました。 (#2187)
  • シリアライザーの fields が文字列のリストでない場合にエラーを発生させるようにしました。 (#2193, #2213)
  • ネストされた作成と更新のチェックを改善しました。 (#2194, #2196)
  • Serializercreate() / update() において、引数 validated_attrsvalidated_data にリネームされました。 (#2197)
  • 廃止されたDjangoのバージョンに対応するため、古いコードを削除しました。 (#2200)
  • ネストされた書き込みに関するシリアライザーのエラーを改善しました。 (#2202, #2215)
  • ページネーションとカスタムパーミッションの非互換性を修正しました。 (#2205)
  • シリアライザーの fields が文字列のリストでない場合にエラーを発生させるようにしました。 (#2213)
  • リレーショナルフィールドに欠けていた翻訳マーカーを追加しました。 (#2231)
  • 辞書/マッピングに対するフィールドのルックアップの動作を改善しました。 (#2244, #2243)
  • 最適化されたハイパーリンクPK。 (#2242)

3.0.0

日付: 2014年12月1日

詳細については、3.0リリースのお知らせをご覧ください。


過去のリリースノートについては、バージョン2.xのドキュメントを参照してください。