본문 바로가기
Django/Django note

[Django note] #3 내가 보려고 만드는 장고 노트 - update 함수, 수정 기능 (전 내용이 보이게 하기)

by clean01 2020. 7. 17.

멋사 장고 강의를 듣고 update 함수를 정의하면서, '왜 수정이라면서 그냥 새 글쓰는거랑 똑같은 빈 창이 나올까..'라는 생각을 했는데, 정말 감사하게도 운영진님이 내 생각을 알아채시고 먼저 알려주셨다.....😭😭👍👍

감사합니다감사합니다감사합니다...

 

 

내 코드(수정 페이지를 보면 입력공간에 아무 것도 없이 나옴)

def update2(request, pk):
    portfolio = get_object_or_404(Portfolio, pk=pk)
    modify = NewPort(request.POST, request.FILES, instance=portfolio)
    if modify.is_valid():
        modify.save()
        return redirect('portfolio')

    return render(request, 'update2.html', {'modify':modify})

운영진님 코드(수정 페이지에 전에 썼던 내용이 불러와짐)

def update2(request, pk):
    portfolio = get_object_or_404(Portfolio, pk=pk)
    if request.method == 'POST':##
        modify = NewPort(request.POST, request.FILES, instance=portfolio)
        if modify.is_valid():
            modify.save()
            return redirect('portfolio')
    else:##
        modify = NewPort(instance = portfolio)##
        return render(request, 'update2.html', {'modify':modify})

 

 

그리고 update라는 함수명 뒤에 2가 붙어있는 이유는 사실 다른 앱에도 update라는 함수가 있어서, 함수명이 겹치면 안되는줄 알고 저렇게 쓴거였는데, 이것도 눈치채시고 다른 앱에 있기때문에 함수명이 겹쳐도 된다고 알려주셨다...ㅎㅎ

 

정말 그저