0

request.POSTパラメータをに移動する必要がありますrequest.query_params QueryDict

これを行うための受け入れられた方法はありますか?

バックグラウンド

私は正常に動作しているDRFバックエンドでデータテーブルを使用しています。アプリケーションを統合に移行していますが、動作しなくなりました。なんで?リクエスト URL が大きすぎます (7000 文字の範囲) - これは私の開発ホストでは問題ではありませんでした ...

だから、私はその問題の解決策を探しています。最初の解決策は、GET の代わりに POST を使用することです。これは機能しますが、DRF とデータテーブルを統合するライブラリは、POST リクエストのフォーム パラメータを処理していません。そのため、フィルタリングやページネーションなどが機能しなくなりました。

これを解決する最も簡単な方法は、フォーム パラメーターをクエリ パラメーターに入れ、通常の GET 要求であるかのようにバックエンドに要求を処理させることです。

これは私が現在行っていることです:

class DataViewSet(viewsets.ModelViewSet):

    queryset = Data.objects.all()
    serializer_class = DataSerializer

    def create(self, request, *args, **kwargs):
        # DataTable uses a lot of parameters which do not fit into a normal URL. To get the data we need to do POST,
        #   so that the parameters are sent in the body
        # We hijack the create method to list the data
        return self.list(request, *args, **kwargs)
4

1 に答える 1