我想在视图中发送 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
提交
取消