본문 바로가기
Django/Django error

[Django 에러] NOT NULL constraint failed: blogapp_blog.pub_date

by clean01 2020. 7. 17.

원인: views.py에서 newblog(새로운 글을쓰는 함수)를 잘 못 정의함.

 

에러 난 코드

#views.py 에러 난 코드
def newblog(request):
	if request.method=='POST':
    	blog=BlogPost(request.POST)
        if blog.is_valid():
            blog.save(commit=False) #틀린 부분
            blog.pub_date=timezone.now()
            blog.save()
            return redirect('home')
    else:
    	blog=BlogPost()
        return render(request, 'new.html', {'blog':blog}

 

수정한 코드

#views.py 수정한 코드
def newblog(request):
    if request.method=='POST':
    	blog=BlogPost(request.POST)
        if blog.is_valid():
            post=blog.save(commit=False) #저장하지 말고 객체를 가져오셈
            post.pub_date=timezone.now() #django.utils에서 timezone임포트
            post.save()
            redirect("home")
    else:
    	blog=BlogPost()
        return render(request, "new.html", {'blog':blog})

저장하지 말고 객체를 가져오는 부분

즉 post=blog.save(commit=False) 주의