T.I.L - Django 팀 프로젝트 3
2023. 4. 12. 23:39ㆍT.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 |