質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Q&A

1回答

567閲覧

docker-composeでのdjangoアプリ データベースの値が表示されない

aiai8976

総合スコア112

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

0グッド

0クリップ

投稿2019/04/20 10:58

編集2019/04/21 00:41

前提・実現したいこと

https://www.djangobrothers.com/tutorials/blog_app/first_app/ を見ながらdjangoの勉強をしているものです。
docker-composeを使ってその中で立てたwebコンテナ内でdjangoを使っています。
先ほどのページの最後のURL時にサイトが表示してくれません。
docker上の問題なのか手順の間違いなのかよくわかりません。
回答お願いします。

以上が前回の質問なんですが、この後続きを行なってviews.pyでクエリセットとhtmlに値の表示を入力しただけなのですが、新しく追加したところだけ表示されません。
docer-compose downやdocker-compose up、python manage.py migrateなどを何回か行なっても変わりません。
回答よろしくお願いします。

###python manage.py showmigrations結果
以下のように初期のマイグレーションはできています。
しかし、journalのマイグレーションファイルが作られていないのが謎です。

root@05a668d65769:/code# python manage.py showmigrations admin [X] 0001_initial [X] 0002_logentry_remove_auto_add [X] 0003_logentry_add_action_flag_choices auth [X] 0001_initial [X] 0002_alter_permission_name_max_length [X] 0003_alter_user_email_max_length [X] 0004_alter_user_username_opts [X] 0005_alter_user_last_login_null [X] 0006_require_contenttypes_0002 [X] 0007_alter_validators_add_error_messages [X] 0008_alter_user_username_max_length [X] 0009_alter_user_last_name_max_length [X] 0010_alter_group_name_max_length [X] 0011_update_proxy_permissions contenttypes [X] 0001_initial [X] 0002_remove_content_type_name journals [X] 0001_initial [X] 0002_auto_20190420_0834 sessions [X] 0001_initial

###ツリー

todo ➤ tree git:master* . ├── Dockerfile ├── composeexample │   ├── __init__.py │   ├── __init__.pyc │   ├── __pycache__ │   │   ├── __init__.cpython-37.pyc │   │   ├── settings.cpython-37.pyc │   │   ├── urls.cpython-37.pyc │   │   └── wsgi.cpython-37.pyc │   ├── settings.py │   ├── settings.pyc │   ├── urls.py │   ├── urls.pyc │   └── wsgi.py ├── docker-compose.yml ├── journals │   ├── __init__.py │   ├── __pycache__ │   │   ├── __init__.cpython-37.pyc │   │   ├── admin.cpython-37.pyc │   │   ├── models.cpython-37.pyc │   │   ├── urls.cpython-37.pyc │   │   └── views.cpython-37.pyc │   ├── admin.py │   ├── apps.py │   ├── migrations │   │   ├── __init__.py │   │   └── __pycache__ │   │   └── __init__.cpython-37.pyc │   ├── models.py │   ├── templates │   │   └── journals │   │   └── index.html │   ├── tests.py │   ├── urls.py │   └── views.py ├── manage.py ├── requirements.txt └── todo-github 9 directories, 30 files

###エラーコード

web_1 | django.db.utils.ProgrammingError: relation "journals_journal" does not exist web_1 | LINE 1: ...time", "journals_journal"."updated_datetime" FROM "journals_...

該当のソースコード

journals/urls.py

journals/urls.py

1from django.urls import path 2from . import views 3 4app_name = 'journals' 5urlpatterns = [ 6 path('', views.index, name='index'), 7] 8

journals/views.py

journals/views.py

1from django.shortcuts import render 2from .models import Journal 3 4 5def index(request): 6 journals = Journal.objects.order_by('-created_datetime') 7 return render(request, 'journals/index.html', {'journals': journals}) 8 9

composeexample/urls.py

composeexample/urls.py

1from django.contrib import admin 2from django.urls import path, include 3 4urlpatterns = [ 5 path('admin/', admin.site.urls), 6 path('', include('journals.urls')), 7] 8

journals/templates/journals/index.html

journals/templates/journals/index.html

1<h1>ブログサイト</h1> 2<p>ここはトップページです!!!!</p> 3{% for journal in journals %} 4 {{ journal.title }} 5{% endfor %} 6 7

models.py

models.py

1from django.db import models 2 3 4class Journal(models.Model): 5 title = models.CharField(blank=False, null=False, max_length=150) 6 text = models.TextField(blank=True) 7 created_datetime = models.DateTimeField(auto_now_add=True) 8 updated_datetime = models.DateTimeField(auto_now=True) 9 10 def __str__(self): 11 return self.title 12

dockercompose.yml

dockercompose.yml

1version: '3' 2 3services: 4 db: 5 image: postgres 6 web: 7 build: . 8 command: python manage.py runserver 0.0.0.0:8000 9 volumes: 10 - .:/code 11 ports: 12 - "8000:8000" 13 depends_on: 14 - db 15

Dockerfile

FROM python:3 ENV PYTHONUNBUFFERED 1 RUN mkdir /code WORKDIR /code COPY requirements.txt /code/ RUN pip3 install -r requirements.txt COPY . /code/

補足情報(FW/ツールのバージョンなど)

python: 3.7.2
Django: 2.2

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

migrations ディレクトリの中にマイグレーションファイルができていないようです。

python manage.py makemigrations が実行されていないのではないでしょうか。

投稿2019/04/20 11:05

iwamot

総合スコア1154

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

aiai8976

2019/04/20 11:08

引き続きありがとうございます。 migrateの前に行なっていますが、以下のように出ます。 root@05a668d65769:/code# python manage.py makemigrations No changes detected
iwamot

2019/04/20 11:14

ということは models.py が変更されていないのでは。
aiai8976

2019/04/20 11:20

何か変える必要ありましたか?
aiai8976

2019/04/20 11:38

一応流れであったところのmodelは書いています。 上に追加したので確認お願いします。
iwamot

2019/04/20 11:43

その状態で `python manage.py makemigrations` しても状況が変わらないなら、下記を進めてみるのはいかがでしょうか。 docker-compose stop docker-compose up --build python manage.py makemigrations python manage.py migrate
aiai8976

2019/04/20 12:12

やってみましたが変わりませんでした。 後半二つのコマンドはNo changes detected、No migrations to apply.となりました。
aiai8976

2019/04/21 00:42

そうですよね。 ちなみにpython manage.py showmigrationsをしてみたんで確認お願いします。
iwamot

2019/04/21 13:17

おっしゃる通り謎ですね。「journals_journal」という列が見つからないのがエラーの原因っぽいですが、そういう列を参照しようとしているコードはないですか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問