【问题标题】:Getting request.data as an empty dictionary获取 request.data 作为空字典
【发布时间】:2022-02-06 20:30:31
【问题描述】:

我有一个像下面这样的视图

class DummyViewSet:
    def create(self, request, *args, **kwargs): 
        variable_a = 5
        return another_api_end_point(request, variable_a) ---> request.data: {"a":"value1", "b": "value2"}

@api_view(['POST'])
another_api_end_point(request, variable_a)
    print(request.data) ---> request.data: {} 
    print(variable_a) ---> variable_a: 5
    return "Some Response"

为什么我可以看到 variable_a 的值,但 request.data 在其他端点为空?

现在调试了好几个小时。

如果有人知道原因,请回复。这将是一个很大的帮助。

【问题讨论】:

  • 一个@api_view 处理请求,因此您在这里再次处理它。
  • 请提供代表minimal reproducible example 所需的所有代码。你怎么打电话给another_api_end_point?你是如何创建DummyViewSet 对象的?
  • @WillemVanOnsem 你的意思是第二个 api 覆盖请求变量并使其为空?

标签: python django django-rest-framework django-viewsets


【解决方案1】:

你可以开始

request.__dict__

查看请求是否真的为空,或者您只是以错误的方式访问它。 鉴于信息有限,您可以尝试以下方法来获取给定请求的正确数据。dict 不为空。

request.body()
request.json()

【讨论】:

  • 在 pycharm 中使用调试器.. 已经检查过了。是空的。
猜你喜欢
  • 1970-01-01
  • 2016-09-06
  • 2018-06-17
  • 1970-01-01
  • 2017-07-15
  • 1970-01-01
  • 1970-01-01
  • 2021-11-18
  • 2017-04-29
相关资源
最近更新 更多