#はじめに
今回の記事では、僕が実際に「ImageField」の反映の際に悩まされたエラーについて解決方法を通して書いていきたいと思います。
#kadaikun.Image.image: (fields.E210) Cannot use ImageField because Pillow is not installed.HINT: Get Pillow at https://pypi.org/project/Pillow/ or run command "pip install Pillow"
最初はこのエラーで悩まされていました。
pillowをインストールしたのに、インストールされていないと言われ「?」状態でした。
とりあえず次のコマンドで対処を試みました。
$ python3 -m pip uninstall pillow
$ python3 -m pip install pillow
そしてマイグレイトしました。
$ python manage.py migrate
結果...
kadaikun.Image.image: (fields.E210) Cannot use ImageField because Pillow is not installed.
HINT: Get Pillow at https://pypi.org/project/Pillow/ or run command "pip install Pillow"
ダメでした...。
このときに自分がDockerを使っていることに気がつきました...。
Dockerは今回が使うのは初めてだったので、「Dockerfile」とか「requirementes.txt」あたりを変更させればいいのかなくらいしかわかっていませんでした。
そのためググりにググって出てきたものは片っ端からDockerfileに書き込んで、「docker-compose up」をひたすら繰り返していました。
#/bin/sh: 1: apk: not found
繰り返した結果...
/bin/sh: 1: apk: not found
とエラーが出るだけで、全く解決しませんでした。
そんな中ついに解決しそうな記事を見つけました。
それがこの記事です。
Docker+djangoで詰まった所
この記事のようにDockerfileに
RUN pip install pillow
と記入し、「equirementes.txt」に、
Pillow==7.2.0
と記入します。
そしてターミナルに次のように打ち込みます。
$ python manage.py makemigrations
$ python manage.py migrate
$ docker-compose up
これで完了!と言いたいところなのですが、ブラウザを開いたときにエラーが出ました...。
#OperationalError
エラーが出たものの、この対処法は簡単でした。
$ rm -d -r db.sqlite3
$ rm -d -r app/migrations/*
$ python manage.py migrate
これでOKです!
最後に
$ docker-compose up
と打ち込むときれいに反映されているはずです。
ちなみに参考にした記事はこちらです。
webページを開くと django.db.utils.OperationalError: no such column: app_action.author_idエラー
#最後に
今回は僕が体験したエラーについて書いていきました。
Djnagoについての記事もこれから上げていくので、参考になれば幸いです。