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

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

2022/04/19 7:03 PM
Total Views: 2,138Daily Views: 4

생겼던 문제: 데이터가 없어서 생기는 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

Thank you for visiting!

Thank you for visiting!

If you found this post helpful, please consider sharing and liking it. If you have any questions, feel free to leave a comment. 😎

If you’d like to contact me personally, please use the button below to send me an inquiry email. 📧