CBV内からエンドポイントに投稿し、レスポンスを取得したい(作成したリソースのIDにアクセスする)。私はHow to programmatically call a Django Rest Framework view within another view?を見てきましたが、リクエストオブジェクトでフィールド値を送信する方法を見つけることができません。 request.dataは不変であり、通過kwargsからを渡すことは何もしていないようです:Django rest Framework JSONを別のクラスベースのビュー内のapiエンドポイントに送信する
from app.views import OtherViewSet
class NewViews(APIView):
def post(self, request, *args, **kwargs):
# kwargs value here is {'field1':1, 'field2':2...}
view_func = OtherViewSet({'post':'create'})
response = view_func(self.request, *args, **kwargs).data
kwargsからは(グループという名前のいくつかのURLを介して設定)フィールド値が含まれていますが、応答はいつものようになります。
{'field1': ['This field is required'], 'field2':['This field is required...
私は間違っていますか?ありがとうすべて:)
編集: 作成したリソースのIDを取得したら、特定の(カスタム)形式でレンダリングされたリソースを取得したい(上記の応答オブジェクトを返すしたくない)。
'OtherViewSet'からシリアライザを再利用する可能性のある特定のシリアライザを使用しないのはなぜ? –
@GabrielMujここに例を挙げることができますか?どのように見えるかわかりません - このビュー内のOtherViewSetの作成エンドポイントにリクエストをした後にデータにアクセスする必要があります。 – Liz
'OtherViewSet'のシリアライザと' NewView'で必要なデータを提供できますか? –