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

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

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

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

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

2901閲覧

本番環境で起きたエラーの対処法が分からないです。(django.db.utils.ProgrammingError: column ** does not exist )

prairie

総合スコア6

Django

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

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/08/03 14:50

編集2022/06/14 02:48

前提・実現したいこと

プログラミング初心者です。Djangoで麻雀のスコア計算機能の付いたスコア表を作成して、ネットに公開しようといます。
localhostでのサイト作成が終了し、ついに公開しようとvultrでサーバを借りてDBの設定をして、
gunicorn --bind 0.0.0.0:8000 mahjongproject.wsgi
で借りたipアドレスを入れ、正常に動作するか試してみました。すると、loclahostでは正常に動作していたところでエラーが出てしまったので、本番環境とで何が違っているのかわかりませんでした。top画面には入れているのでcollectstaticはできていると思います。

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

サイトにloginした人は麻雀のプレイヤー登録をします。
topページのurlからプレイヤー登録画面へ行くことはできました。そこでプレイヤー名を入力し、登録ボタンを押すと
MahjongPlayerModelに、入力した情報が保存されるはずなのですが、以下のようなエラー画表示が出てしまいました。
(models.pyの内容は下に載せてあります。)

Environment: Request Method: POST Request URL: http://000.000.000.000:8000/manimahjongrecord/player_create/ Django Version: 3.0.9 Python Version: 3.8.2 Installed Applications: ['django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'mahjongrecord'] Installed Middleware: ['django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware'] Traceback (most recent call last): File "/home/mahjongproject/mahjongenv/lib/python3.8/site-packages/django/db/backends/utils.py", line 86, in _execute return self.cursor.execute(sql, params) The above exception (column mahjongrecord_mahjongplayermodel.username does not exist LINE 1: ...ETE FROM "mahjongrecord_mahjongplayermodel" WHERE "mahjongre... ^ ) was the direct cause of the following exception: File "/home/mahjongproject/mahjongenv/lib/python3.8/site-packages/django/core/handlers/exception.py", line 34, in inner response = get_response(request) File "/home/mahjongproject/mahjongenv/lib/python3.8/site-packages/django/core/handlers/base.py", line 115, in _get_response response = self.process_exception_by_middleware(e, request) File "/home/mahjongproject/mahjongenv/lib/python3.8/site-packages/django/core/handlers/base.py", line 113, in _get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/home/mahjongproject/mahjongenv/lib/python3.8/site-packages/django/contrib/auth/decorators.py", line 21, in _wrapped_view return view_func(request, *args, **kwargs) File "/home/mahjongproject/mahjongrecord/views.py", line 65, in player_create_func MahjongPlayerModel.objects.filter(username = request.user.username).delete() File "/home/mahjongproject/mahjongenv/lib/python3.8/site-packages/django/db/models/query.py", line 722, in delete deleted, _rows_count = collector.delete() File "/home/mahjongproject/mahjongenv/lib/python3.8/site-packages/django/db/models/deletion.py", line 314, in delete count = qs._raw_delete(using=self.using) File "/home/mahjongproject/mahjongenv/lib/python3.8/site-packages/django/db/models/query.py", line 736, in _raw_delete return sql.DeleteQuery(self.model).delete_qs(self, using) File "/home/mahjongproject/mahjongenv/lib/python3.8/site-packages/django/db/models/sql/subqueries.py", line 75, in delete_qs cursor = self.get_compiler(using).execute_sql(CURSOR) File "/home/mahjongproject/mahjongenv/lib/python3.8/site-packages/django/db/models/sql/compiler.py", line 1152, in execute_sql cursor.execute(sql, params) File "/home/mahjongproject/mahjongenv/lib/python3.8/site-packages/django/db/backends/utils.py", line 100, in execute return super().execute(sql, params) File "/home/mahjongproject/mahjongenv/lib/python3.8/site-packages/django/db/backends/utils.py", line 68, in execute return self._execute_with_wrappers(sql, params, many=False, executor=self._execute) File "/home/mahjongproject/mahjongenv/lib/python3.8/site-packages/django/db/backends/utils.py", line 77, in _execute_with_wrappers return executor(sql, params, many, context) File "/home/mahjongproject/mahjongenv/lib/python3.8/site-packages/django/db/backends/utils.py", line 86, in _execute return self.cursor.execute(sql, params) File "/home/mahjongproject/mahjongenv/lib/python3.8/site-packages/django/db/utils.py", line 90, in __exit__ raise dj_exc_value.with_traceback(traceback) from exc_value File "/home/mahjongproject/mahjongenv/lib/python3.8/site-packages/django/db/backends/utils.py", line 86, in _execute return self.cursor.execute(sql, params) Exception Type: ProgrammingError at /manimahjongrecord/player_create/ Exception Value: column mahjongrecord_mahjongplayermodel.username does not exist LINE 1: ...ETE FROM "mahjongrecord_mahjongplayermodel" WHERE "mahjongre... ^

該当のソースコード

#####models.py

python

1class MahjongPlayerModel(models.Model): 2 username = models.CharField(max_length = 100, default = 'taro') 3 player1 = models.CharField(max_length = 100, default = 'player1') 4 player2 = models.CharField(max_length = 100, default = 'player2') 5 player3 = models.CharField(max_length = 100, default = 'player3') 6 player4 = models.CharField(max_length = 100, default = 'player4')

#####wiews.py
既に登録してあるプレイヤーを削除してから新たに登録して、save()しなおす仕組みなのですが、自分はここの2つの仕組みのどちらかに欠陥があるのではないかと思っています。しかしlocalhostで試したときはうまくいきました。
MahjongPlayerModel.objects.filter(username = request.user.username).delete()
username = request.user.username

@login_required def player_create_func(request): if request.method == 'POST': player1 = request.POST['player1'] player2 = request.POST['player2'] player3 = request.POST['player3'] player4 = request.POST['player4'] MahjongPlayerModel.objects.filter(username = request.user.username).delete() players = MahjongPlayerModel(username = request.user.username, player1 = player1, player2 = player2, player3 = player3, player4 = player4) players.save() return redirect('top') return render(request, 'playercreate.html')

なのでcollectstaticが正常にできていない可能性もあるのですが、その場合なぜできていないかはわかりませんでした。
#####settings.py

STATIC_URL = '/sta/' #STATICFILES_DIRS = [ # os.path.join(BASE_DIR, 'static/') #] STATIC_ROOT = os.path.join(BASE_DIR, 'static/') LOGIN_URL = 'login'

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

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

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

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

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

guest

回答1

0

自己解決

リンク内容
質問者です。textFieldモデルのmax_length()が短いというエラーが出たので本番環境内で10から100に変更したのが原因っぽいです。明日起きたらgitのとこからやり直してみようと思います。

投稿2020/08/03 16:35

編集2020/08/03 16:39
prairie

総合スコア6

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問