【发布时间】:2020-11-14 16:31:04
【问题描述】:
我在 django 视图中从 POST 检索数据时遇到问题。我将带有 axios 的 React 表单值发送到我的 django 后端。我相信数据被放入 POST 但不知何故似乎 POST 中没有任何数据,我无法在我的 django 视图中访问它。这里可能有什么问题? (我还可以在控制台中看到值已成功提交)
源代码:
Django views.py:
@csrf_exempt
def send(request):
if request.method == "POST":
data = request.body('name')
send_mail('Test 1', data, 'austin.milk1@gmail.com', ['lowoko9513@gomail4.com',], fail_silently=False)
return redirect('/api/')
React 表单处理:
handleFormSubmit = (event) => {
const name = event.target.elements.name.value;
const email = event.target.elements.email.value;
event.preventDefault();
axios.post('http://127.0.0.1:8000/api/send', {
name: name,
email: email
})
.then(res => console.log(res))
.catch(error => console.err(error));
};
新错误:
File "C:\Users\austi\PycharmProjects\Fitex#1\venv\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
response = get_response(request)
File "C:\Users\austi\PycharmProjects\Fitex#1\venv\lib\site-packages\django\core\handlers\base.py", line 115, in _get_response
response = self.process_exception_by_middleware(e, request)
File "C:\Users\austi\PycharmProjects\Fitex#1\venv\lib\site-packages\django\core\handlers\base.py", line 113, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\austi\PycharmProjects\Fitex#1\venv\lib\site-packages\django\views\decorators\csrf.py", line 54, in wrapped_view
return view_func(*args, **kwargs)
File "C:\Users\austi\PycharmProjects\Fitex5\backend\src\training\api\views.py", line 78, in send
data = request.body('name')
TypeError: 'bytes' object is not callable
【问题讨论】:
-
这是因为您发送的是 JSON 而不是 FormData,POST 字段用于表单。你想要
request.body。 stackoverflow.com/a/3020756/490790