Сообщение об ошибке: почему я получаю "None", хотя я добавил get() в views.py в Django ????? Кто-нибудь может мне помочь

Это мой файл 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 Фото HTML Photo HTML Photo

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

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

Потому что у вас нет значения input в вашем html. Поэтому все values являются None.

Измените свой html с

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

To

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

И так далее для всех остальных значений remaining.

Если я правильно понял, вы хотите узнать, почему вы получаете None при использовании метода get() на словаре/запросе.

Это происходит потому, что запрашиваемый ключ не существует, и вы не указали значение по умолчанию для get(), которое должно быть использовано, если ключ не существует. В этом случае возвращается None.

Это также подробно объясняется в этом посте.

request.POST.get() получает значения из тегов <input> и <select>, а не из тегов таблицы.

Вы можете попробовать использовать скрытые входы следующим образом: <input type="hidden" id="table_num" name="table_num" value="DC 8">

Вам нужно будет сделать это для всей информации, которую вы хотите отправить в бэкэнд. Не забудьте добавить id="" и name="" ко всем тегам inputs/select

Вернуться на верх