🤨
【Python】Strawberry0.243.0以降でのmultipart file uploadsのDjango対応
概要
PythonのGraphQLライブラリStrawberryを、Djangoで使う「strawberry-graphql-django」のライブラリを更新したところファイルアップロードができなくなりました。原因はStrawberry0.243.0でファイルアップロード周りの更新が入っていたらしく、対応についてメモ書きします。
前提
- 使用したstrawberry-graphql-djangoのバージョンは
0.50.0
です。なお、strawberry-graphql-djangoのバージョンのどれで、Strawberry0.243.0が取り込まれたかは未確認です。
対応
v0.243.0 Breaking Changesのページにある通り、Djangoではpathの設定時にviewへcsrf_exempt
を付与した上で、multipart_uploads_enabled
の設定を追加する必要があります。
実装サンプル
urls.py
from django.urls import path
from django.views.decorators.csrf import csrf_exempt
from placeNoteApi2024.graphql.graphql_view import PlaceNoteGraphQLView
from placeNoteApi2024.schema import schema
urlpatterns = [
path(
"graphql/",
csrf_exempt(
PlaceNoteGraphQLView.as_view(schema=schema, multipart_uploads_enabled=True)
),
),
]
Discussion