我是一个初学者,试图弄清楚如何同时使用Django和Fetch API.
我试着追问这个问题Django - taking values from POST request, JavaScript fetch API
了解如何将表单发布到Django视图,并从该视图访问数据.我不确定我的表头是否有问题.
我的html表单
<form class="basicform">
<label for="nametextbox">Change First Name</label>
<input type="text" name="nametextbox">
</form>`
我的FETCH POST请求
function postForm(id, form){
var formData = new FormData (form);
let response = fetch("{% url 'fetch-ppl' '12345' %}".replace('12345',id), {
method: 'POST',
body: formData,
headers: { 'Accept': 'application/json, text/plain, */*',
'Content-Type': 'application/json',
"X-CSRFToken": getCookie("csrftoken") },
})
.then(response => response.json())
.then(data=>{
console.log(data);
})
return 'Post Done';
}
我的帖子视图,我正try 将表单数据发送到
def post_form_rest(request, pk):
ppl = PersonalData.objects.get(id=pk)
serializer = PersonalDataSerializer(ppl,many=False)
if (request.method == 'POST'):
print("It's a Post Request")
print(request.POST);
print("Contents of Body")
print(request.body);
data = ["post request done"]
return JsonResponse(data, safe=False)
print("it wasn't a post request")
return JsonResponse(serializer.data)
我的问题是,当我发送POST请求时,Django视图根本没有检测到任何POST数据,它只是跳到为我提供初始模型对象的json响应的末尾.(我没有收到任何打印声明,即"这是POST请求")
我在访问我try 发送的表单数据时遇到问题.Quest.POST为空,quest.Body也为空
2023-08-25 20:52:14 It's a Post Request
2023-08-25 20:52:14
2023-08-25 20:52:14 <QueryDict: {}>
2023-08-25 20:52:14
2023-08-25 20:52:14 Contents of Body
2023-08-25 20:52:14
2023-08-25 20:52:14 b'------WebKitFormBoundary3j9PtnVhAWSkfB14--\r\n'
2023-08-25 20:52:14
如果我访问URL,确实会吐出JSON.
作为参考,我设置了一个演示,但它可能会被删除:
表格:https://alisatlee.pythonanywhere.com/ 您可以查看console.log,只需在任意框中输入gibberish,然后按Enter键即可.
我想在这里发布一个请求: https://alisatlee.pythonanywhere.com/fetch-ppl/1/个