from django.contrib import messages
@login_required # request.user를 외래키로 할당하려면 로그인 상태라는 보증이 필요하니까
def post_new(request):
if request.method == 'POST':
form = PostForm(request.POST, request.FILES)
if form.is_valid():
post = form.save(commit=False)
post.author = request.user # 현재 로그인 유저 instance
post.save()
messages.success(request, '포스팅을 저장했습니다.')
return redirect(post)
else :
form = PostForm()
return render(request, 'instagram/post_form.html', {
'form': form,
})
@login_required
def post_edit(request, pk):
post = get_object_or_404(Post, pk=pk)
# 작성자 체크 팁인데 login_required 장식자를 커스텀하면 해당 기능을 넣을 수 있을 듯?
if post.author != request.user:
messages.error(request, '작성자만 수정할 수 있습니다.')
return redirect(post)
if request.method == 'POST':
form = PostForm(request.POST, request.FILES, instance=post)
if form.is_valid():
post = form.save()
# post = form.save(commit=False)
# post.save()
messages.success(request, '포스팅을 수정했습니다.')
return redirect(post)
else :
form = PostForm(instance=post)
return render(request, 'instagram/post_form.html', {
'form': form,
})
감사합니다.