私が働いている会社は、3django-rest-frameworkは、 `ModelViewSet`に対してデフォルトの` allowed_methods`がどうあるべきかを決めるのですか?
- 両方のプロジェクトは、両方のビューセットが明示的に
allowed_methods
プロパティを定義しないと、単に何でもDRFの数字を使用しているModelViewSet
- を拡張ビューセット持っジャンゴとDRFを使用する2つのプロジェクトを持っていますデフォルトにする必要があります
- 両方上書きまたは任意のハンドラメソッド(
create()
、update()
、partial_update()
、patch()
など)
ただし、1つのプロジェクトでは、allowed_methods
プロパティの既定値は[u'GET', u'PUT', u'PATCH', u'DELETE', u'HEAD', u'OPTIONS']
です。その他の場合はallowed_methods
はデフォルトで[u'GET', u'POST', u'HEAD', u'OPTIONS']
になります。したがって、私は
の方法で "405"を返します。
私はPATCH要求を送信しようとしました。
なぜプロジェクト2はより制限されますか?
お返事ありがとうございます。2つのビューセットで定義されている唯一のメソッドは 'get_queryset()'と 'get_serializer_class()'なので、その違いを説明することはできません...プロジェクト1では 'patch()'メソッド( 'ModelViewSet'で定義されている)' partial_update() 'に直接マップされるので、' hasattr(self、 'patch') 'はtrueを返しますが、プロジェクト2ではそこには接続がありません。どのようなアイデアは、プロジェクト1のそれを引き起こすだろうか?ビューセット自体は、その接続を作成/定義していません... – Troy