[REAL Python – Django] – “Django – 테이블에 데이터가 없을 때 값 추가하기”

[REAL Python – Django] – “Django – 테이블에 데이터가 없을 때 값 추가하기”

4월 19, 2022

생겼던 문제: 데이터가 없어서 생기는 NoneType' object has no attribute ~ 에러

모든 템플릿에서 사용할 수 있는 변수를 추가하도록 해 주었던 context processor

이후 서버를 실행해 보면..

나오는 에러.

이러한 오류가 발생하는데, 위의 쿼리를 실행해서 BlogMeta blogAdmin 값을 가져와야 하는데, 테이블에 생성된 데이터 자체가 없으므로 이러한 오류가 발생합니다.

이것 때문에, 모델을 건드려야 하나 생각했는데 의외로 아래의 코드를 추가해 문제를 해결했습니다.

from blog.models import BlogMeta

def get_global_context(request):

    try:
        blogMeta_obj = BlogMeta.objects.get()
    except BlogMeta.DoesNotExist:
        blogMeta_obj = BlogMeta(blogTitle="Sample Blog Title", blogAdmin="Admin")
        blogMeta_obj.save()

    latestBlogAdmin = BlogMeta.objects.last().blogAdmin
    latestBlogTitle = BlogMeta.objects.last().blogTitle

    return {'blog_title' : latestBlogTitle, 'blog_admin_name' : latestBlogAdmin}

try - except 로 예외 처리를 해 주었습니다. 만약 DoesNotExist 에러가 발생한다면 데이터를 생성하는 코드를 작성해 줬습니다.

데이터가 새로 추가되고 그것이 context processor 에서 작동하여 페이지가 제대로 로드되는 것을 볼 수 있습니다.

의도했던 대로 작동하네요. 다행입니다. :)

Leave A Comment

Avada Programmer

Hello! We are a group of skilled developers and programmers.

Hello! We are a group of skilled developers and programmers.

We have experience in working with different platforms, systems, and devices to create products that are compatible and accessible.