1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Django + Docker でImageFieldを反映させる方法(pillow)

Last updated at Posted at 2020-09-14

#はじめに
今回の記事では、僕が実際に「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をインストールしたのに、インストールされていないと言われ「?」状態でした。
とりあえず次のコマンドで対処を試みました。

terminal
$ python3 -m pip uninstall pillow

$ python3 -m pip install pillow

そしてマイグレイトしました。

terminal
$ python manage.py migrate

結果...

terminal
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

繰り返した結果...

terminal
/bin/sh: 1: apk: not found

とエラーが出るだけで、全く解決しませんでした。

そんな中ついに解決しそうな記事を見つけました。

それがこの記事です。
Docker+djangoで詰まった所

この記事のようにDockerfileに

Dockerfile
RUN pip install pillow

と記入し、「equirementes.txt」に、

equirementes.txt
Pillow==7.2.0

と記入します。

そしてターミナルに次のように打ち込みます。

terminal
$ python manage.py makemigrations

$ python manage.py migrate

$ docker-compose up

これで完了!と言いたいところなのですが、ブラウザを開いたときにエラーが出ました...。

#OperationalError
エラーが出たものの、この対処法は簡単でした。

terminal
$ rm -d -r db.sqlite3
$ rm -d -r app/migrations/*
$ python manage.py migrate

これでOKです!

最後に

terminal
$ docker-compose up

と打ち込むときれいに反映されているはずです。

ちなみに参考にした記事はこちらです。

webページを開くと django.db.utils.OperationalError: no such column: app_action.author_idエラー

#最後に
今回は僕が体験したエラーについて書いていきました。
Djnagoについての記事もこれから上げていくので、参考になれば幸いです。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?