リリースノート
バージョニング
マイナーバージョン番号(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]
OrderedDict
をdict
に置き換えた[#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 スキーマに
examples
とformat
を含める [#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_attribute
をField.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]
ListSerializer
にmax_length
およびmin_length
オプションを追加。 [#8165]AutoSchema
にget_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]DecimalField
でallow_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] SearchFilter
がJSONField
およびHStoreField
モデルフィールドでのネストされた検索をサポートするようになった。 [#7121]SearchFilter
がannotate()
フィールドでの検索をサポートするようになった。 [#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.NullBooleanField
をallow_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)
を使用してください。 gh6687list_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
のドキュメントセクションを許可するようにしました。 #6060Router.register
のbase_name
引数を非推奨とし、basename
に置き換えました。 #5990Router.get_default_base_name
メソッドを非推奨とし、Router.get_default_basename
に置き換えました。 #5990CharField
で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) ]
OpenAPIRenderer
とgenerate_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
の動作を使用するようにしました。 #5915list_route
とdetail_route
の場合、関数の名前ではなく、url_path
に基づいてurl_name
の古い動作を維持します。
3.8.0
日付: 2018年4月3日
-
破壊的変更:
read_only
とdefault
の動作を変更しました。 #5886read_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_route
とdetail_route
を単一のaction
デコレーターにマージしました。ViewSet
のすべての追加アクションを.get_extra_actions()
で取得します。- 追加のアクションは、デコレートされたメソッドに
url_name
とurl_path
を設定するようになりました。 url_path
は常に適切であるとは限らないため(たとえば、パス内の引数をキャプチャするなど)、url_name
はパスではなく、関数の名前に基づくようになりました。.reverse_action()
メソッド(3.7.4で追加)を通じてアクションURLのリバースを有効にしました。- リバース呼び出しの例:
self.reverse_action(self.custom_action.url_name)
- 現在のアクションがコレクションまたは単一のインスタンスで動作しているかどうかを示すために、
detail
initkwargを追加しました。
追加の変更点:
detail
ブール値を持つaction
デコレーターを優先して、list_route
とdetail_route
を非推奨にしました。- 非推奨となった動的なリスト/詳細ルートのバリアントを、
detail
ブール値を持つDynamicRoute
に置き換えました。 - ルーターの動的ルート生成をリファクタリングしました。
list_route
とdetail_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日
3.7.6
日付: 2017年12月21日
- パッケージングに欠落していた*.icoアイコンファイルを追加しました。
3.7.5
日付: 2017年12月21日
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を参照してください。 #5376APIView
とapi_view
デコレータのexclude_from_schema
を非推奨にしました。必要に応じてschema = None
または@schema(None)
を設定してください。 #5422-
タイムゾーン対応の
DateTimeField
は、常にUTCを使用するのではなく、シリアライズ中にアクティブまたはデフォルトのtimezone
を尊重するようになりました。 #5435create
には指定された日時で、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_JSON
をFalse
に設定してください。 #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_queryset
がNone
を返した場合に、より明確なエラーメッセージを追加しました。 #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_fields
はAutoSchema.get_serializer_fields
としてリファクタリングされ、view
引数が削除されました。[#5354][gh5354]
3.6.xシリーズ
3.6.4
日付: 2017年8月21日
- OrderingFilterの不正な形式のクエリパラメータを無視するようにしました。 #5131
- 大規模なJSONリクエストを読み込む際のメモリフットプリントを改善しました。 #5147
- ページネーションのスキーマ生成を修正しました。 #5161
HTML_CUTOFF
がNone
に設定されている場合の例外を修正しました。 #5174- Browsable APIが
multipart/form-data
を正しくサポートしていない問題を修正しました。 #5176 test_hyperlinked_related_lookup_url_encoded_exists
を修正しました。 #5179- max_lengthがFileFieldのkwargsに含まれることを確認しました。 #5186
url_path
に中括弧が含まれる場合のlist_route
とdetail_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日
DefaultRouter
にroot_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_type
はlookup_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)
QueryParameterVersioning
がDEFAULT_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)
AutoFilterSet
がdefault_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) RelatedField
のget_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_cutoff
とhtml_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)- 空のチェックボックスがすべての場合において
BooleanField
をFalse
に適切に設定するようにします。(#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)ListField
にallow_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)UUIDField
でallow_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)
HStoreField
がDictField
マッピングにallow_blank=True
を含めるように修正しました。(#2659)- その他、多数のクリーンアップ、エラーメッセージの改善、プライベートAPI、マイナーな修正。
3.1.xシリーズ
3.1.3
日付: 2015年6月4日。
DurationField
を追加しました。(#2481, #2989)UUIDField
にformat
引数を追加しました。(#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)
DecimalField
は2E+2
を 200 として受け入れ、小数点以下を正しく検証します。(#2948, #2947)- カスタム
UserModel
でusername
を変更した場合の基本認証をサポートします。(#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) DjangoModelPermissions
がget_queryset
に依存するようにします。(#2863)- コンテンツネゴシエーションが有効な状態で
AcceptHeaderVersioning
をチェックします。(#2868) DjangoObjectPermissions
がget_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.py
でrest_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.8HStoreField
をサポートします。(#2451, #2106)UUIDField
を追加し、Django 1.8UUIDField
をサポートします。(#2448, #2433, #2432)BaseRenderer.render
がNotImplementedError
を発生させるようになりました。(#2434)- Python 2.6でのtimedelta JSONシリアル化を修正します。(#2430)
ResultDict
とResultList
が標準のdict/listとして表示されるようになりました。(#2421)- Webブラウズ可能なAPIページのHTMLフォームで可視の
HiddenField
を修正します。(#2410) RelatedField.choices
にOrderedDict
を使用します。(#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)IntegerField
とmax_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)
CharField
のmin_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) ListSerializer
にvalidate()
を追加します。(#2168, #2225, #2232)- JSONPレンダラーが一部の文字をエスケープし損なう問題を修正しました。 (#2169, #2195)
FileField
に欠けていたデフォルトスタイルを追加しました。 (#2172)ViewSet.as_view()
を呼び出す際にアクションが必須になりました。 (#2175)ChoiceField
にallow_blank
を追加しました。 (#2184, #2239)- HTMLレンダラーの見た目の修正を行いました。 (#2187)
- シリアライザーの
fields
が文字列のリストでない場合にエラーを発生させるようにしました。 (#2193, #2213) - ネストされた作成と更新のチェックを改善しました。 (#2194, #2196)
Serializer
のcreate()
/update()
において、引数validated_attrs
がvalidated_data
にリネームされました。 (#2197)- 廃止されたDjangoのバージョンに対応するため、古いコードを削除しました。 (#2200)
- ネストされた書き込みに関するシリアライザーのエラーを改善しました。 (#2202, #2215)
- ページネーションとカスタムパーミッションの非互換性を修正しました。 (#2205)
- シリアライザーの
fields
が文字列のリストでない場合にエラーを発生させるようにしました。 (#2213) - リレーショナルフィールドに欠けていた翻訳マーカーを追加しました。 (#2231)
- 辞書/マッピングに対するフィールドのルックアップの動作を改善しました。 (#2244, #2243)
- 最適化されたハイパーリンクPK。 (#2242)
3.0.0
日付: 2014年12月1日
詳細については、3.0リリースのお知らせをご覧ください。
過去のリリースノートについては、バージョン2.xのドキュメントを参照してください。