You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django发送POST请求调用审计日志创建接口返回400错误如何解决

问题原因

你调用requests.post方法时将参数放在了params字段中,params是用来传递URL查询参数的,从你的错误日志也能看到所有参数都拼接在了请求URL后面:/audit_logs/create/?username=abcpadmin&action_type=Export&action=Export&ip_address=127.0.0.1。而audit_logs/create/接口是从POST请求体中读取参数,所以服务端识别不到你提交的字段,才会返回必填项缺失的400错误。

修复方案

把请求代码中的params参数替换为json或data即可,具体根据接口接收的参数格式选择:

audit_url="http://127.0.0.1:8000/audit_logs/create/"
audit_parms={
    "username":username,
    "action_type":action_type,
    "action":action,
    "ip_address":ip_address
}
# 接口接收JSON格式参数(大部分前后端分离场景用这个)
audit_obj=requests.post(audit_url, headers=headers, json=audit_parms)
# 如果接口接收表单格式参数,就用下面的写法
# audit_obj=requests.post(audit_url, headers=headers, data=audit_parms)
额外优化建议
  • 当前审计日志请求和PDF导出是串行执行的,如果审计接口响应慢会拖慢PDF下载速度,可考虑将审计日志写入逻辑改为异步任务处理,不阻塞主请求
  • 代码中使用了过多全局变量存储查询条件,多用户并发请求时会出现数据串扰的问题,建议将fromDate、toDate这类参数改为从当前请求对象中读取,不要用全局变量存储

内容的提问来源于stack exchange,提问作者Shweta Shinde

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 03:57:02