我想在視圖中發送 http 請求。請求 URL 與另一個視圖相關。像這樣的東西:class View_A(APIView): def get(self, request): return Response({'foo':'bar'})class View_B(APIView): def post(self, request): # Here I would want to send a request to View_A, something like this: request_view_A = View_A.as_view().get('URL_FROM_VIEW_A') # ... return Response({'foo2':'bar2'})我已經看到這個問題有不同的焦點,但是對我不起作用,因為來自View_A(get)的http方法與來自(post)的http方法不同View_B。
2 回答

慕虎7371278
TA貢獻1802條經驗 獲得超4個贊
您可以通過以下方式做到這一點:
class View_B(APIView):
def post(self, request):
httpresponse = View_A().get(request)
# …
return Response({'foo2':'bar2'})
我們這里并沒有真正發出 HTTP 請求,我們只是進行方法調用并用作request參數。
話雖如此,這通常意味著您應該“封裝”邏輯。通常,我們會定義額外的函數或類(通常不是視圖)來實現隨后在兩個視圖中使用的通用邏輯。

躍然一笑
TA貢獻1826條經驗 獲得超6個贊
這個例子:
import requests?
#...
class View_B(APIView):
? ? def post(self, request):
? ? ? ? response = requests.get(your_url)
? ? ? ? # ...
? ? ? ? return Response({'foo2':'bar2'})
添加回答
舉報
0/150
提交
取消