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)