forms.py
@login_required
def comment_new(request, post_pk):
post = get_object_or_404(Post, pk=post_pk)
if request.method == 'POST':
form = CommentForm(request.POST, request.FILES)
if form.is_valid():
comment = form.save(commit=False) # author와 post 정보가 form에 지정되어 있지 않기 때문
comment.post = post
comment.author = request.user
comment.save()
return redirect(comment.post)
else:
form = CommentForm()
return render(request, "instagram/comment_form.html", {
"form":form,
})
-form.save(commit=True)가 default인대, False로 바꾸지 않으면 자동으로 Comment Model DB에 save 실행된다.
따라서 form에서 DB insert하는대 필요한 정보들을 전부 받지 못하였다면 위처럼 comment.post-.author같이 정보를 다 채우고 수동으로 저장을 완료 해야한다.
-개인적으로 comment에 외래키 Model Post를 저장할 때 Model 정보를 통째로 가져와야 하는지 잘 모르겠다. 어떻게 동작하는지 코드 동작상에서 확인 필요... post_pk만 넘기면 안되는 걸까?