首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >django: request.POST.get()返回NoneType

django: request.POST.get()返回NoneType
EN

Stack Overflow用户
提问于 2021-10-21 21:43:13
回答 1查看 103关注 0票数 0

我的工作从一个html表单获得的数据。

我目前无法捕获服务器端的数据。在服务器上,每个输入都返回"NoneType“。

我觉得我已经尝试了所有我能在这里找到的东西,特别是在html表单中把id改成name,都不管用。

这是我到目前为止所得到的:

views.py:

代码语言:javascript
复制
def quadriatransport_simulationView(request):
  return render(request, "simulation.html")


@csrf_exempt
def compute(request):
  destination = request.POST.get("destination")
  nombre_de_palettes = request.POST.get("nombre_de_palettes")
  poids_par_palette = request.POST.get("poids_par_palette")
  Optimisation_prix = request.POST.get("Optimisation_prix")
  Optimisation_delai = request.POST.get("Optimisation_delai")
  result = {"destination":destination}
  print(result)
    
  return JsonResponse({"operation_result": result})

results返回一个字典,其中destinationNone

下面是我在网页上所能做的事情

代码语言:javascript
复制
    <form method="POST">
    {% csrf_token %}

    <label><h3>Input variables to calculate EOQ:</h3></label>
    <br>
    <br>


    <span>Destination (departement) <input type="text" id="destination">
    <br>
    <br>
    <span>Nombre de palettes <input type="text" id="nombre_de_palettes">
    <br>
    <br>
    <span>Poids par palette <input type="text" id="poids_par_palette">
    <br>
    <br>
    <span>Optimiser prix <input type="checkbox" id="Optimisation_prix">
     <br>
     <br>
     <span>Optimiser délai de livraion <input type="checkbox" id="Optimisation_delai">
      <br>
     
    

    <input id="ajax-call" type="submit" value="Simuler">

</form>
            <p id="ajax"></p>

这是我在网页中的js脚本。

代码语言:javascript
复制
       <script>
document.querySelector("#ajax-call").addEventListener("click", event => {
    event.preventDefault();
    let formData = new FormData();
    formData.append('destination', document.querySelector("#destination").value);
    formData.append('nombre_de_palettes', document.querySelector("#nombre_de_palettes").value);
    formData.append('poids_par_palette', document.querySelector("#poids_par_palette").value);
    formData.append('Optimisation_prix', document.querySelector("#Optimisation_prix").value);
    formData.append('Optimisation_delai', document.querySelector("#Optimisation_delai").value);
 
    let csrfTokenValue = document.querySelector('[name=csrfmiddlewaretoken]').value;
    const request = new Request('{% url "compute" %}', {
        method: 'POST',
        body: formData,
        headers: {'X-CSRFToken': csrfTokenValue}
    });
    fetch(request)
        .then(response => response.json())
        .then(result => {
            const resultElement = document.querySelector("#ajax");
            resultElement.innerHTML = result["operation_result"];
        })
})
</script>

不知道这有什么问题,我已经成功地在其他项目中使用了相同的结构,并且它起作用了。我已经和它斗争了几个小时了,我看不清了。希望有人能看到我哪里搞砸了!

EN

回答 1

Stack Overflow用户

发布于 2021-10-21 22:40:23

formData中的destination拼写错误

代码语言:javascript
复制
formData.append('destination', document.querySelector("#destination").value);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69669097

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档