APIViewクラスでメソッドとは独立した同じコードを実行するメソッドを持つことは可能ですか?つまりGET/POST/PUT。Django rest framework APIすべてのメソッドで同じコードを表示
0
A
答えて
0
多分、この要件を満たすためにdjangoミドルウェアを使用することができます。
class CommonResponseMiddleware:
def __init__(self):
pass
def process_request(self, request):
path = request.path_info.lstrip('/')
method = request.method.upper()
if method == "DELETE":
request.META['REQUEST_METHOD'] = 'DELETE'
request.DELETE = QueryDict(request.body)
if method == "PUT":
request.META['REQUEST_METHOD'] = 'PUT'
request.PUT = QueryDict(request.body)
params = {}
if method == "GET":
params = request.GET.items()
# do what ever you want for GET method
if method == "POST":
params = request.POST.items()
# do what ever you want for POST method
if method == "PUT":
params = request.PUT.items()
# do what ever you want for PUT method
if method == "DELETE":
params = request.DELETE.items()
# do what ever you want for DELETE method
次に、このミドルウェアをsettings.pyに適用します。
MIDDLEWARE_CLASSES = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware', # <--here
#'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.middleware.gzip.GZipMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'authentication.auth.middleware.LoginRequiredMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'core.middleware.CommonResponseMiddleware',
]
ミドルウェアについて詳しくは、お手数ですが、お役に立てば幸いです。ジャンゴと同様に
1
は、APIView
はあなたが
def dispatch(self, request):
return super().dispatch(request)
詳細についてはdispatch methodsを参照してください独自のビューでそれをオーバーライドすることができますので、使用するリクエストメソッドを決定する前に最初の発送方法を経由することで同じように動作します。
関連する問題
- 1. Django Rest Framework POSTメソッドshow api interface
- 2. Django rest framework-ビューのみを表示
- 3. Django rest frameworkブラウズ可能APIフィルタバックエンドが表示されない
- 4. POST APIの表示可能なフィールドに表示されないフィールド - django Rest Framework
- 5. Django rest framework ApiドキュメントSwagger 2.0
- 6. Djangoコールビューのメソッドは、パラメータに応じて同じURLで表示されます
- 7. Django Rest Framework JWTユニットテスト
- 8. Django Rest Framework - リバースリレーション
- 9. Django rest framework social oauth2
- 10. Django Rest Framework slug_fieldエラー
- 11. Django Rest Frameworkカスタムシリアライザメソッド
- 12. Django REST Frameworkログイン
- 13. Django Rest Framework Dictionaryフィールド
- 14. Django Rest Frameworkファイルアップロード
- 15. Django REST Frameworkでネストされたエンティティを表示する
- 16. Django Rest Frameworkテストクラスエラー
- 17. Django Rest Framework OPTIONSアクションはPOSTのみを表示します
- 18. Django Rest Framework、CSRF、Vue.js
- 19. django-rest-frameworkのシングルページクエリ
- 20. django rest framework。 raise_exception = True
- 21. django rest framework attributeerror
- 22. django rest frameworkの関連フィールドの異なるフィールドを表示
- 23. なぜdjango-rest-frameworkにOneToOneFieldデータが表示されないのですか - django
- 24. django rest frameowrkのフィールド入力を一覧表示するapi-mongoengine
- 25. Django Rest Frameworkのquery_paramsのバリデーション
- 26. Django Rest FrameworkはStreamFieldのコンテンツを表示しません
- 27. django-rest-framework-bulk BulkUpdateアウトプットのカスタマイズを表示
- 28. リレーショナルデータベース - Django Rest Framework
- 29. Django Rest Frameworkスタンドアロン?
- 30. django rest framework RetrieveUpdateAPIView
GET/POST/PUTメソッドのすべてのAPIで同じコードを実行しますか?またはただ1つのAPIのGET/POST/PUTメソッド? – zhaorong
Getとpostと同じです。Putとは異なります。すべての方法について同様の解決法が認められるであろう。 –