T.I.L - Django 팀 프로젝트 3

2023. 4. 12. 23:39T.I.L (Today_I_Learned)

오늘 배운 것


Django로 게시글 수정하기 기능 구현

더보기
# urls.py
urlpatterns = [
	path('api/mypage/edit/<int:pk>', views.mypage_edit_view, name='posting_edit'),
    # 게시글을 수정하기 위해 해당 게시글의 primary key (pk) 값을 url에 사용해 줍니다.
]

# views.py
@login_required
def mypage_edit_view(request, pk):
    posting_edit = PostingModel.objects.get(id=pk) #posting_edit 객체를 정의해서 수정하려는 게시물을 가져옵니다.
    if request.method == "POST":
        title = request.POST.get("title_edit","")
        thumbnail = request.POST.get("thumbnail_edit","")
        content = request.POST.get("content_edit","")
 
        if title == '':
            return render(request, 'posting/edit.html', {'error': '제목을 작성해주세요!'})
        elif content == '':
            return render(request, 'posting/edit.html', {'error': '내용을 작성해주세요!'})
        else:
            posting_edit.title = title
            posting_edit.thumbnail = thumbnail
            posting_edit.content = content
            # posting_edit 객체의  'title', 'thumbnail', 'content' 필드를 새로운 값으로 업데이트 합니다.
            posting_edit.save()
            # 'save()'를 사용하여 해당 객체를 저장합니다.
            return redirect('/api/posting-detail/'+str(pk))
            # 해당 게시글의 pk값을 사용해 'posting-detail' 페이지로 리디렉션해서 수정된 게시물을 표시합니다.
    		
    elif request.method == "GET":
        user = request.user.is_authenticated
        if user:
            return render(request, 'posting/edit.html', {'posting_edit': posting_edit})
        else:
            return render(request, 'user/signin.html')

 

게시글을 수정하는 기능을 구현하면서 pk값의 활용에 대해 배웠습니다. 

사용자는 게시글을 여러개 만들 수 있지만 각 게시글들은 한명의 사용자에 의해

작성될 수 있습니다. 따라서 게시글을 수정하기 위해 특정 게시글을 불러와야 

하는데, 그럴때 사용할 수 있을만한 값으로 해당 게시글의 pk값이 있었습니다.

그리고 '더보기'에 자세히 있지만 객체를 활용해 해당 게시글에 들어갈 값을

갱신할 수 있는 방법도 배웠습니다.

 

 

 

팀 프로젝트를 하면서 느낀점


협업은 굉장한 이점이 있는 것 같습니다. 개인 프로젝트를 진행할 때에 1주일로도

부족했던 기간이 지금은 조금 널널하게 느껴질 정도로 시간 단축과 문제 해결을 

하는데 있어서 엄청난 이점이 있다는 것을 느꼈습니다.

이러한 팀 협업의 이점을 최대한 가져가려면 소통이 엄청난 역할을 한다는 것 또한

알았습니다. git의 활용으로 협업의 편의성이 늘어났지만 소통이 부족하다면 과정중에

충돌이 잦게 일어나고 충돌을 해결하다보면 팀 프로젝트의 이점인 시간 단축과 업무 

효율성에 큰 악영향이 생겼습니다. 그래서 소통을 더 늘리면서 git을 활용하여 

프로젝트의 필수기능 구현을 빠르게 마칠 수 있었고 팀이 다른 것을 더 시도할 시간을

얻게 되었습니다. 소통 최고!!

'T.I.L (Today_I_Learned)' 카테고리의 다른 글

T.I.L - Django 팀 프로젝트 5  (0) 2023.04.14
T.I.L - Django 팀프로젝트 4  (2) 2023.04.13
T.I.L - Django 팀 프로젝트 2  (0) 2023.04.11
T.I.L - Django 팀 프로젝트 1  (0) 2023.04.10
T.I.L (Django 1일 차)  (0) 2023.04.03