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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Django

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

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

1回答

2423閲覧

HerokuにデプロイしたApp内にログイン後、リンクが上手く機能しない

kawataku

総合スコア3

Django

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

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2021/08/13 06:32

前提・実現したいこと

djangoを使用してherokuにデプロイをしました。
一応管理画面やApp内のログイン画面は表示されますが、ログイン後にapp内のナビゲーションのリンクをクリックしますと、勝手にログアウトされて、またログイン画面に戻ってしまいます。
これは、adminでも同じで、なぜかわかりませんが、ログイン画面にリダイレクトされます。

さらに、時々ログインのメールアドレスパスワードが正しいにも関わらず、またログイン画面にリダイレクトされます。

ちなみにローカルの環境では上手くいっておりました。

発生している問題・エラーメッセージ

linux:

12021-08-13T03:08:10.940917+00:00 heroku[web.1]: Idling 22021-08-13T03:08:10.987656+00:00 heroku[web.1]: State changed from up to down 32021-08-13T03:08:11.588753+00:00 heroku[web.1]: Stopping all processes with SIGTERM 42021-08-13T03:08:11.665946+00:00 app[web.1]: [2021-08-13 12:08:11 +0900] [9] [INFO] Worker exiting (pid: 9) 52021-08-13T03:08:11.665958+00:00 app[web.1]: [2021-08-13 12:08:11 +0900] [10] [INFO] Worker exiting (pid: 10) 62021-08-13T03:08:11.665959+00:00 app[web.1]: [2021-08-13 03:08:11 +0000] [4] [INFO] Handling signal: term 72021-08-13T03:08:11.671032+00:00 app[web.1]: [2021-08-13 03:08:11 +0000] [4] [WARNING] Worker with pid 9 was terminated due to signal 15 82021-08-13T03:08:11.671177+00:00 app[web.1]: [2021-08-13 03:08:11 +0000] [4] [WARNING] Worker with pid 10 was terminated due to signal 15 92021-08-13T03:08:11.766077+00:00 app[web.1]: [2021-08-13 03:08:11 +0000] [4] [INFO] Shutting down: Master 102021-08-13T03:08:11.851169+00:00 heroku[web.1]: Process exited with status 0 112021-08-13T03:33:38.226115+00:00 heroku[web.1]: Unidling 122021-08-13T03:33:38.302811+00:00 heroku[web.1]: State changed from down to starting 132021-08-13T03:33:42.840157+00:00 heroku[web.1]: Starting process with command `gunicorn Trip_jQuery.wsgi --log-file -` 142021-08-13T03:33:44.412969+00:00 app[web.1]: [2021-08-13 03:33:44 +0000] [4] [INFO] Starting gunicorn 20.1.0 152021-08-13T03:33:44.413382+00:00 app[web.1]: [2021-08-13 03:33:44 +0000] [4] [INFO] Listening at: http://0.0.0.0:13850 (4) 162021-08-13T03:33:44.413434+00:00 app[web.1]: [2021-08-13 03:33:44 +0000] [4] [INFO] Using worker: sync 172021-08-13T03:33:44.416493+00:00 app[web.1]: [2021-08-13 03:33:44 +0000] [9] [INFO] Booting worker with pid: 9 182021-08-13T03:33:44.437414+00:00 app[web.1]: [2021-08-13 03:33:44 +0000] [10] [INFO] Booting worker with pid: 10 192021-08-13T03:33:44.464428+00:00 heroku[web.1]: State changed from starting to up 202021-08-13T03:33:44.608510+00:00 app[web.1]: /app/.heroku/python/lib/python3.7/site-packages/psycopg2/__init__.py:144: UserWarning: The psycopg2 wheel package will be renamed from release 2.8; in order to keep installing from binary please use "pip install psycopg2-binary" instead. For details see: <http://initd.org/psycopg/docs/install.html#binary-install-from-pypi>. 212021-08-13T03:33:44.608514+00:00 app[web.1]: """) 222021-08-13T03:33:44.628489+00:00 app[web.1]: /app/.heroku/python/lib/python3.7/site-packages/psycopg2/__init__.py:144: UserWarning: The psycopg2 wheel package will be renamed from release 2.8; in order to keep installing from binary please use "pip install psycopg2-binary" instead. For details see: <http://initd.org/psycopg/docs/install.html#binary-install-from-pypi>. 232021-08-13T03:33:44.628491+00:00 app[web.1]: """) 242021-08-13T03:33:45.463821+00:00 heroku[router]: at=info method=GET path="/" host=our-trips.herokuapp.com request_id=06cc2641-ba24-4974-b395-06e845d56f54 fwd="133.32.224.215" dyno=web.1 connect=0ms service=71ms status=404 bytes=455 protocol=https 252021-08-13T03:33:45.469638+00:00 app[web.1]: 10.1.83.138 - - [13/Aug/2021:12:33:45 +0900] "GET / HTTP/1.1" 404 208 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36" 262021-08-13T03:33:51.591385+00:00 heroku[router]: at=info method=GET path="/make_trip/myPage" host=our-trips.herokuapp.com request_id=327006a1-8bac-4338-9151-d7a750aa5b7d fwd="133.32.224.215" dyno=web.1 connect=0ms service=65ms status=302 bytes=301 protocol=https 272021-08-13T03:33:51.804296+00:00 heroku[router]: at=info method=GET path="/make_trip/?next=/make_trip/myPage" host=our-trips.herokuapp.com request_id=a7ead2e6-d613-4a9a-8851-94f553d048d2 fwd="133.32.224.215" dyno=web.1 connect=0ms service=22ms status=200 bytes=3505 protocol=https 282021-08-13T03:33:51.597261+00:00 app[web.1]: 10.1.83.138 - - [13/Aug/2021:12:33:51 +0900] "GET /make_trip/myPage HTTP/1.1" 302 0 "https://our-trips.herokuapp.com/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36" 292021-08-13T03:33:51.810147+00:00 app[web.1]: 10.1.83.138 - - [13/Aug/2021:12:33:51 +0900] "GET /make_trip/?next=/make_trip/myPage HTTP/1.1" 200 2971 "https://our-trips.herokuapp.com/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36" 302021-08-13T03:34:06.762536+00:00 app[web.1]: 10.1.83.138 - - [13/Aug/2021:12:34:06 +0900] "POST /make_trip/ HTTP/1.1" 302 0 "https://our-trips.herokuapp.com/make_trip/?next=/make_trip/myPage" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36" 312021-08-13T03:34:06.985580+00:00 app[web.1]: 10.1.83.138 - - [13/Aug/2021:12:34:06 +0900] "GET /make_trip/myPage HTTP/1.1" 302 0 "https://our-trips.herokuapp.com/make_trip/?next=/make_trip/myPage" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36" 322021-08-13T03:34:06.756704+00:00 heroku[router]: at=info method=POST path="/make_trip/" host=our-trips.herokuapp.com request_id=6400c16b-a327-4838-8b7a-e07a29f5925d fwd="133.32.224.215" dyno=web.1 connect=0ms service=183ms status=302 bytes=707 protocol=https 332021-08-13T03:34:06.979601+00:00 heroku[router]: at=info method=GET path="/make_trip/myPage" host=our-trips.herokuapp.com request_id=fb0c96f4-cb82-4a55-8df5-b70364555f66 fwd="133.32.224.215" dyno=web.1 connect=0ms service=31ms status=302 bytes=399 protocol=https 342021-08-13T03:34:07.176986+00:00 heroku[router]: at=info method=GET path="/make_trip/?next=/make_trip/myPage" host=our-trips.herokuapp.com request_id=b6fa18d2-1709-4068-9847-9da4a5be8573 fwd="133.32.224.215" dyno=web.1 connect=0ms service=4ms status=200 bytes=3505 protocol=https 352021-08-13T03:34:07.182829+00:00 app[web.1]: 10.1.83.138 - - [13/Aug/2021:12:34:07 +0900] "GET /make_trip/?next=/make_trip/myPage HTTP/1.1" 200 2971 "https://our-trips.herokuapp.com/make_trip/?next=/make_trip/myPage" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36"

該当のソースコード

Django

1import os 2import django_heroku 3import dj_database_url 4 5# Build paths inside the project like this: os.path.join(BASE_DIR, ...) 6BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 7 8# SECURITY WARNING: keep the secret key used in production secret! 9SECRET_KEY = 'セキュリティのため隠しておきます' 10 11# SECURITY WARNING: don't run with debug turned on in production! 12DEBUG =False 13 14ALLOWED_HOSTS = ['our-trips.herokuapp.com'] 15 16# Application definition 17 18INSTALLED_APPS = [ 19 'django.contrib.admin', 20 'django.contrib.auth', 21 'django.contrib.contenttypes', 22 'django.contrib.sessions', 23 'django.contrib.messages', 24 'django.contrib.staticfiles', 25 'make_trip', 26 'django_boost', 27 'bootstrap4', 28 'django.contrib.humanize', 29] 30 31MIDDLEWARE = [ 32 'django.middleware.security.SecurityMiddleware', 33 'django.contrib.sessions.middleware.SessionMiddleware', 34 'django.middleware.common.CommonMiddleware', 35 'django.middleware.csrf.CsrfViewMiddleware', 36 'django.contrib.auth.middleware.AuthenticationMiddleware', 37 'django.contrib.messages.middleware.MessageMiddleware', 38 'django.middleware.clickjacking.XFrameOptionsMiddleware', 39 'whitenoise.middleware.WhiteNoiseMiddleware', 40] 41 42SESSION_ENGINE = 'django.contrib.sessions.backends.cache' 43 44ROOT_URLCONF = 'Trip_jQuery.urls' 45 46TEMPLATES = [ 47 { 48 'BACKEND': 'django.template.backends.django.DjangoTemplates', 49 'DIRS': [], 50 'APP_DIRS': True, 51 'OPTIONS': { 52 'context_processors': [ 53 'django.template.context_processors.debug', 54 'django.template.context_processors.request', 55 'django.contrib.auth.context_processors.auth', 56 'django.contrib.messages.context_processors.messages', 57 ], 58 }, 59 }, 60] 61 62WSGI_APPLICATION = 'Trip_jQuery.wsgi.application' 63 64# ここでこれを定義しておかないとエラーになってしまう 65DEFAULT_AUTO_FIELD='django.db.models.AutoField' 66 67# 追記 68DATABASES = { 69 'default': { 70 'ENGINE': 'django.db.backends.sqlite3', 71 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), 72 } 73} 74db_from_env = dj_database_url.config() 75DATABASES['default'] = dj_database_url.config() 76 77AUTH_PASSWORD_VALIDATORS = [ 78 { 79 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', 80 }, 81 { 82 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', 83 }, 84 { 85 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', 86 }, 87 { 88 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', 89 }, 90] 91 92LANGUAGE_CODE = 'ja' 93 94TIME_ZONE = 'Asia/Tokyo' 95 96USE_I18N = True 97 98USE_L10N = True 99 100USE_TZ = True 101 102NUMBER_GROUPING = 3 103 104LOGIN_URL = '/make_trip/' 105LOGIN_REDIRECT_URL = '/make_trip/myPage' 106LOGOUT_REDIRECT_URL = '/make_trip/' 107 108# emailを実際に送信する 109EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' 110EMAIL_HOST = 'smtp.googlemail.com' 111EMAIL_USE_TLS = True 112EMAIL_PORT = 587 113EMAIL_HOST_USER = '自分のメールアドレスを設定しています' 114EMAIL_HOST_PASSWORD = 'パスワードも設定しております' 115 116# 自作のUserモデルを使用する 117AUTH_USER_MODEL = 'make_trip.User' 118 119try: 120 from .local_settings import * 121except ImportError: 122 pass 123 124if not DEBUG: 125 django_heroku.settings(locals()) 126

試したこと

staticが邪魔なのかと思い、cssファイルやjsファイルの削除、s

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

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答1

0

どのようにデータを保存しているかわからないので根本的な解決になるかはわかりませんが
HerokuではSQLiteは推奨(下記参照)されていないので、PostgreSQLに変更したほうがよいとおもいます。

SQLite はメモリ内で実行され、そのデータストアをディスク上のファイルにバックアップします。この方法は開発には適していますが、Heroku の Cedar スタックには一時的なファイルシステム​があります。このファイルシステムは書き込みも読み取りもできますが、内容は定期的にクリアされます。Heroku で SQLite を使用すると、少なくとも 24 時間に 1 回はデータベース全体が失われます。

出典: SQLite on Heroku

内容は定期的にクリアされますとあるのでデータベースにセッション情報などを保存している場合は途中でリセットされている可能性があります。

投稿2021/08/13 07:03

Alma-field

総合スコア108

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

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

kawataku

2021/08/13 08:17

回答ありがとうございます。 助かります。 1つ質問なのですが、requirements.txtにて以下のように`psycopg2==2.7.7`を設定しているのですが、これで自動的にpostsqlが作成されて、postgreSQLに対応できているというわけではないのでしょうか? ``` asgiref==3.4.1 dj-database-url==0.5.0 dj-static==0.0.6 Django==3.2.6 django-heroku==0.3.1 django-toolbelt==0.0.1 gunicorn==20.1.0 psycopg2==2.7.7 pytz==2021.1 sqlparse==0.4.1 static3==0.7.0 typing-extensions==3.10.0.0 whitenoise==5.3.0 django-boost==1.7.2 django-bootstrap4==3.0.1 requests==2.26.0 ``` よろしくお願いします。
Alma-field

2021/08/16 15:08

返信が遅くなりましたが... requirements.txtにライブラリを入れるだけでは実行環境にインストールを行うことしかしていません。 現在のプログラムを見たところ DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), } } db_from_env = dj_database_url.config() DATABASES['default'] = dj_database_url.config() などの部分でデータベースのエンジンをsqlite3と指定しているようですので、 その部分を 'ENGINE': 'django.db.backends.postgresql', のように使用するデータベースの情報に置き換えてください。
kawataku

2021/08/21 03:35

こちらこそ返信遅くなりすみません。 なるほどです。一応やってみたのですが、どうやら解決していないみたいでして... App内にてリンクを移動すると ``` TypeError: 'AnonymousUser' object is not iterable ``` みたいなエラーが出てしまうのですが、こちらもDataBaseの問題になるのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問