이제 boss에서 각 가게마다의 주문내열을 확인하고 예상 소요시간을 볼 수 있게끔 바꾸어 보도록 하겠습니다. 우선 url을 2개로 나누어야 합니다. 시간을 입력할 수 있는 각 가게마다의 url인 orders/<int:shop>/, 그리고 여기에서 post요청을 timeinput/으로 보내버리면 됩니다. 바로 코드로 봅시다.
/fastcampus/boss/views.py
from django.utils import timezone
from django.shortcuts import render
from order.models import Shop, Menu, Order, Orderfood
from order.serializer import ShopSerializer, MenuSerializer
from django.http import HttpResponse, JsonResponse
from django.views.decorators.csrf import csrf_exempt
from rest_framework.parsers import JSONParser
@csrf_exempt
def order_list(request, shop):
if request.method == 'GET':
order_list = Order.objects.filter(shop=shop)
return render(request, "boss/order_list.html", {'order_list': order_list})
@csrf_exempt
def time_input(request):
if request.method == 'POST':
order_item = Order.objects.get(pk=int(request.POST['order_id']))
shop = order_item.shop.id
order_item.estimated_time = int(request.POST['estimated_time'])
order_item.save()
return render(request, "boss/success.html", {'shop': shop})
else:
return HttpResponse(status=404)
/fastcampus/boss/urls.py
from django.urls import path
from boss import views
urlpatterns = [
path('orders/<int:shop>/', views.order_list, name="order_list"),
path('timeinput/', views.time_input, name="timeinput")
]
그냥 기존의 get, post요청을 다른 url로 분리해 버린 것입니다. 그리고 shop이라는 변수를 더 받아서 가게를 구분해주었습니다. 여기서 success.html을 조금 바꾸어 주도록 하겠습니다.
/fastcampus/boss/success.html
예상 시간 입력을 완료하였습니다.
다른 주문 내열을 보기 위해선 <a href="{% url 'order_list' shop %}">여기</a>를 클릭해주세요.
이제 결과를 전체적으로 확인해 보도록 하겠습니다.
우선 음식을 주문할 매장을 선택합니다.
그리고 메뉴를 선택하고, 주소를 입력하고 주문을 합니다.
그리고 주문완료 창이 뜨고 여기를 눌러서 정보를 확인합니다.
정상적으로 주문 목록에 추가되었습니다.
그리고 사장님페이지로 들어옵니다.
사장님이 예상 소요시간을 입력합니다.
확인 페이지가 뜨고 여기를 눌러 결과를 확인합니다.
40분이 정상적으로 입력되었습니다. 그리고 전체적인 주문목록을 다시 확인하면
정상적으로 작동하는 것을 확인할 수 있습니다.
마지막으로 다음 포스트에서 배달 완료 여부를 구현하겠습니다.
'DevOps > AWS Architecture' 카테고리의 다른 글
[ DevOps ] - AWS 기반 소규모 & 중규모 아키텍트 설계 - 데이터베이스 구축 (AWS RDS) (0) | 2022.06.30 |
---|---|
[ DevOps ] - AWS 기반 소규모 & 중규모 아키텍트 설계 - Delivery 백엔드 개발 (0) | 2022.06.29 |
[ DevOps ] - AWS 기반 소규모 & 중규모 아키텍트 설계 - Boss 백엔드 개발 1 (0) | 2022.06.29 |
[ DevOps ] - AWS 기반 소규모 & 중규모 아키텍트 설계 - Order백엔드 개발 3 (0) | 2022.06.29 |
[ DevOps ] - AWS 기반 소규모 & 중규모 아키텍트 설계 - Order백엔드 개발 2 (0) | 2022.06.29 |