gpt4 book ai didi

python - 在 Django 的请求工厂中使用无数据进行 POST

转载 作者:行者123 更新时间:2023-12-03 16:38:21 24 4
gpt4 key购买 nike

我将我的 django 应用程序从 1.x 移动到 2.2,在运行单元测试时,我收到关于将 None 作为数据发布的错误。在以前的版本中允许发布 None 吗?有没有办法通过RequestFactory发布None?

我不想给出空字符串,因为该字段需要验证

r = RequestFactory()
rr = r.post("some-url",{"name":"sri", "kd_ratio":None})

错误:
  File "/usr/local/lib/python3.7/site-packages/django/test/client.py", line 354, in post
post_data = self._encode_data(data, content_type)
File "/usr/local/lib/python3.7/site-packages/django/test/client.py", line 313, in _encode_data
return encode_multipart(BOUNDARY, data)
File "/usr/local/lib/python3.7/site-packages/django/test/client.py", line 197, in encode_multipart
'Cannot encode None as POST data. Did you mean to pass an '
TypeError: Cannot encode None as POST data. Did you mean to pass an empty string or omit the value?

最佳答案

https://docs.djangoproject.com/en/3.0/topics/testing/tools/#django.test.Client.post

您需要添加 content_type="application/json"作为能够发送 None/null 作为值的参数。

原因是默认内容类型(multipart/form-data)不支持空值,只支持空字符串,因此建议。

关于python - 在 Django 的请求工厂中使用无数据进行 POST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57882125/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com