私はtastypieを使用していますが、私には独特の状況があります。私のモデルには「format」という名前のフィールドがあるため、関連する API を呼び出して format=json を渡そうとすると、次のエラーが発生します。
「フォーマット」フィールドはフィルタリングできません。
モデル フィールドの名前を変更する以外に、これに対する別の回避策はありますか?
「フォーマット」がハードコードされているようtastypie.utils.mime.determine_format()
です。オーバーライドできますResource.determine_format
:
class MyResource(ModelResource):
def determine_format(self, request):
"""
Used to determine the desired format.
Largely relies on ``tastypie.utils.mime.determine_format`` but here
as a point of extension.
"""
# Determine your format and return it.
# This is the default implementation.
return determine_format(request, self._meta.serializer, default_format=self._meta.default_format)
私見、?format=json
クエリ文字列内は単なる回避策です。私はそれに頼ることはありません。正しい方法は、ヘッダーを送信することcontent-type: application/json
です。