错误消息:为什么我得到 "None" 尽管我在 Django 的 views.py 处添加了 get() ???谁能帮我

Error Message: why i am getting "None" although i have add get() at views.py in Django ??? Can anyone help me

这是我的 Views.py 文件,在这个文件中我试图从 HTML

中获取值
from django.shortcuts import render
from .models import kitchenData
from django.http import HttpResponse


def kitchen(request):
    if request.method == 'POST':
        table_num = request.POST.get('table_num')
        full_name = request.POST.get('full_name')
        qty = request.POST.get('qty')
        drink_name = request.POST.get('drinks_name')
        drink_qty = request.POST.get('drinks_qty')
        message = request.POST.get('message')
        price = request.POST.get('price')
        status = request.POST.get('status')
        print(table_num,full_name,qty,drink_name,drink_qty,message,price,status)
        return render(request, 'kitchen/kitchen_order.html')
    else:
        return render(request, 'kitchen/kitchen_order.html')

HTML 照片

[![i have attached the output][1]][1]  

[1]: https://i.stack.imgur.com/y4pYy.png

因为您的 html 中没有 input 值。所以所有 values 都是 None.

将您的 html

更改为
<tr>
   <td>Full Name: </td>
   <td name="full_name">Shiva Giri<td>
</tr>

    <tr>
       <td>Full Name: </td>
       <td><input type="text" name="full_name" value="Shiva Giri"><td>
    </tr>

所有其他 remaining 值依此类推。

如果我没理解错的话,您想知道为什么在 dictionary/request.

上使用 get() 方法时得到 None

这是因为请求的密钥不存在,并且您没有为 get() 指定任何在密钥不存在时应使用的默认值。在这种情况下,返回 None

This is also explained in detail in this post.

request.POST.get()<input><select> 标签而不是 table 标签获取值。

您可以像这样尝试隐藏输入:<input type="hidden" id="table_num" name="table_num" value="DC 8">

您需要对要发送到后端的所有信息执行此操作。不要忘记将 id=""name="" 添加到所有 inputs/select 标签