Django 오늘의 뻘짓

만약 Store모델에 데이터가 없는 경우
'스토어 정보가 없습니다'라는 에러메시지와 함께 Store 정보를 등록할 수 있는 Form 작성

*수정전

def mystore(request, pk):
	#이미 스토어 정보가 있는경우 데이터 가져오기
    try:
        owner = BookStoreModel.objects.get(pk=pk)
    #데이터가 없는 경우 예외처리 (에러 메시지)
    except BookStoreModel.DoesNotExist:
        return render(request, 'bookstore/mystore.html', {'error':'스토어정보가 없습니다'})
        
	#스토어등록
        if request.method == "POST":
            print('mystore.views.post')
            store_register = BookStoreModel.objects.create(
                updated_at = datetime.date.today(),
                created_at = datetime.date.today(),
                store_name = request.POST['store_name'],
                store_info = request.POST['store_info'],
                store_img = request.POST['store_img'],
                store_views = request.POST['store_views'],
                user_id = pk,
            )

            return redirect('mystore', store_register.pk)
            
    return render(request, 'bookstore/mystore.html', {'owner':owner})

근데 html에서 submmit 버튼을 누르는데 아무런 반응이 없는 것이다..!
데이터 등록도 안되고 에러메시지도 안뜨고...
if 문의 print가 출력 안되는거 보니 아예 실행이 안되는 듯?

Store에 데이터 없는 경우 except 문을 타고 그대로 함수실행이 종료 되기 때문이었따.
그래서 if문을 except 문 안에 넣어주니 데이터가 아주 잘 들어간다.

*수정후

def mystore(request, pk):
    print('mystore.views')
    print(pk)
    try:
        owner = BookStoreModel.objects.get(pk=pk)
    except BookStoreModel.DoesNotExist:
        #스토어등록
        if request.method == "POST":
            print('mystore.views.post')
            store_register = BookStoreModel.objects.create(
                updated_at = datetime.date.today(),
                created_at = datetime.date.today(),
                store_name = request.POST['store_name'],
                store_info = request.POST['store_info'],
                store_img = request.POST['store_img'],
                store_views = request.POST['store_views'],
                user_id = pk,
            )

            return redirect('mystore', store_register.pk)
        return render(request, 'bookstore/mystore.html', {'error':'스토어정보가 없습니다'})

    return render(request, 'bookstore/mystore.html', {'owner':owner})

매우 간단하게 썼는데 엄청 끙끙댔다는 오늘의 뻘짓 끗-❣

좋은 웹페이지 즐겨찾기