Daily - troubleshooting

김기훈·2025년 11월 30일

Daily

목록 보기
2/2

Django


2025/11/09

  • views.py / blog_list.html / urls.py 세팅 다하고 열어봤는데 오류발생

  • 원인: settings 에서 기본적으로 등록을 해놓지 않으면 템플릿 경로를 찾지 못함

  • 해결1: 'DIRS': [BASE_DIR / 'templates']

  • 해결2: 'APP_DIRS': True 만든 app안에 templates가 있으면 그것을 사용 하겠다.

    • blog안에 templates를 만들고 templates안에 폴더를 하나 만들어야 함

2025/11/10

  • NOT NULL constraint failed: blog_blog.author_id

  • 원인: blog.author 필드가 null이면 안 되는데 null이 들어가서 DB 저장에 실패했다는 뜻

    1. blog = form.save() (Blog 모델의 author 필드가 NOT NULL)
    • commit=False 없이 바로 저장하고 있음 → 이 경우 BlogForm에 포함된 필드만 저장
      • author는 form에 포함되어 있지 않음
        • 즉, author_id=None 상태가 되어 DB에 저장하려다가 에러
          blog = form.save(commit=False) 
          blog.author = request.user 
          blog.save()
  • 해결

      1. form으로 객체는 만듬 / 2. DB에 저장하기 전에(author 지정 전) 잠시 멈추고
      1. blog.author = request.user 로 author 값을 채운 뒤 / 4. blog.save() 로 저장
      • author_id=None → DB 저장 에러가 안 생김
        • 즉, commit=False 덕분에 DB저장을 미루고 author 값을 넣고 save() 했기 때문

  • 번호를 누르는 페이지네이션은 잘 되는데 다음 이전 버튼이 안됨

    • 검색창까지는 잘 나오지만 검색이 안됨
      • 원인: blogs = blogs.filter 를 설정 안했음

DRF

2025/11/11

  • BlogCreateView 를 사용하면서 urls까지 해놓고 연결해봤는데 연결 안됨

  • 원인 : 에러 페이지에서 말했듯 필드가 fields 가 필요
  • 해결 : fields 추가

profile
안녕하세요.

0개의 댓글