Отредактируйте данные и сохраните их в базе данных в Django - PullRequest
0 голосов
/ 05 мая 2019

Я новичок.Я создаю систему управления заказами в ресторане, которая после того, как клиент заказывает еду, на кухне может получить заказ клиента и изменить статус его еды (пример: приготовлено или готово к подаче).

Я хочучтобы изменить статус заказа клиента с помощью опции выбора, сохранить его в базе данных, когда я нажму кнопку «изменить статус», и отобразить его на странице kitchen_page.html.Но я не уверен, как это сделать?

Кто-нибудь может помочь мне сделать это?

Вот мои шаблоны: enter image description here

views.py:

def kitchen_view(request):
    chef_view = OrderItem.objects.all()
    #chef_view = OrderItem.objects.get(OrderId=OrderId)
    return render(request, 'restaurants/kitchen_page.html', {'chef_view': chef_view})
    if request.method == "POST":
        OrderId = request.POST.get("OrderId")
        Status = request.POST.get("Status")

        chef_view.OrderId = OrderId
        chef_view.Status = Status
        get_status = chef_view.save()

        return render(request, 'restaurants/kitchen_page.html', {'chef_view':chef_view})

1 Ответ

0 голосов
/ 05 мая 2019

Вы возвращаете рендер до того, как что-то произойдет.

def kitchen_view(request):
    chef_view = OrderItem.objects.all()
    # set the status if request method is post
    if request.method == "POST":
        order_id = request.POST.get("OrderId")
        status = request.POST.get("Status")
        # get order instance by id and change the status
        order = OrderItem.objects.get(pk=order_id)
        order.status = status
        order.save()
    # since the render data is the same, you can just call it once.
    return render(request, 'restaurants/kitchen_page.html', {'chef_view':chef_view})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...