【Django(エラー処理)】一発解決!TypeError: argument of type ‘PosixPath’ is not iterable

Django

(最終更新月:2021年11月)

Djangoでアプリ開発を進めていたら突然

TypeError: argument of type 'PosixPath' is not iterable

というエラーが出てきてお困りでないでしょうか?

解決策は下記の通りです

settings.py > DATABASES > default > NAME をstr()で文字列化します

 'NAME': str(BASE_DIR / 'db.sqlite3'),

DATABASES全体は下記の通りです

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': str(BASE_DIR / 'db.sqlite3'),
    }
}

sqliteデータベースのパスを文字列にしよう!

【何が起きてるか覗いてみよう!】

今の状態で、DATABASEをターミナル上にprintすると

{'default': 
    {'ENGINE': 'django.db.backends.sqlite3', 
    'NAME': PosixPath('/Users/hironish/dev/anotherNippo/src/db.sqlite3')
    }
}

となります

str()で文字列化したあとは

{'default': 
    {'ENGINE': 'django.db.backends.sqlite3', 
    'NAME': '/Users/hironish/dev/anotherNippo/src/db.sqlite3'
    }
}

「通常の文字列であればエラーが起きない!」ということですね

当ブログでは、日報アプリ開発を通じて、Webアプリを一から開発し公開するまでを初学者の方でもわかるようにと記事を連載しています

「Djangoでのアプリ開発を学びたい!」
「Djangoで開発したアプリをWebで公開するにはどうするの?」

という方は必見です!

【Django】チュートリアル|日報アプリの開発から公開まで
Djangoのチュートリアルをお探しですか?具体的に「手を動かして作ってみたい!」という方へ向けて、誰でもできる簡易的な日報アプリの開発を通じて、Djangoの様々な機能に触れていくシリーズとなっています。PythonでWebアプリを作りたい方、必見の記事となります!
タイトルとURLをコピーしました