質問編集履歴

3

フォルダ名の更新

2022/06/14 02:48

投稿

prairie
prairie

スコア6

test CHANGED
File without changes
test CHANGED
@@ -7,7 +7,7 @@
7
7
 
8
8
  ### 発生している問題・エラーメッセージ
9
9
  サイトにloginした人は麻雀のプレイヤー登録をします。
10
- topページのurlからプレイヤー登録のurlへ行くことはできました。そこでプレイヤー名を入力し、登録ボタンを押すと
10
+ topページのurlからプレイヤー登録画面へ行くことはできました。そこでプレイヤー名を入力し、登録ボタンを押すと
11
11
  MahjongPlayerModelに、入力した情報が保存されるはずなのですが、以下のようなエラー画表示が出てしまいました。
12
12
  (models.pyの内容は下に載せてあります。)
13
13
  ```

2

フォルダ名の修正

2022/06/14 02:47

投稿

prairie
prairie

スコア6

test CHANGED
File without changes
test CHANGED
@@ -1,257 +1,129 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
-
4
-
5
3
  プログラミング初心者です。Djangoで麻雀のスコア計算機能の付いたスコア表を作成して、ネットに公開しようといます。
6
-
7
4
  localhostでのサイト作成が終了し、ついに公開しようとvultrでサーバを借りてDBの設定をして、
8
-
9
5
  gunicorn --bind 0.0.0.0:8000 mahjongproject.wsgi
10
-
11
6
  で借りたipアドレスを入れ、正常に動作するか試してみました。すると、loclahostでは正常に動作していたところでエラーが出てしまったので、本番環境とで何が違っているのかわかりませんでした。top画面には入れているのでcollectstaticはできていると思います。
12
7
 
13
-
14
-
15
8
  ### 発生している問題・エラーメッセージ
16
-
17
9
  サイトにloginした人は麻雀のプレイヤー登録をします。
18
-
19
10
  topページのurlからプレイヤー登録のurlへ行くことはできました。そこでプレイヤー名を入力し、登録ボタンを押すと
20
-
21
11
  MahjongPlayerModelに、入力した情報が保存されるはずなのですが、以下のようなエラー画表示が出てしまいました。
22
-
23
12
  (models.pyの内容は下に載せてあります。)
24
-
25
13
  ```
26
-
27
14
  Environment:
28
15
 
29
16
 
30
-
31
-
32
-
33
17
  Request Method: POST
34
-
35
- Request URL: http://202.182.101.177:8000/manimahjongrecord/player_create/
18
+ Request URL: http://000.000.000.000:8000/manimahjongrecord/player_create/
36
-
37
-
38
19
 
39
20
  Django Version: 3.0.9
40
-
41
21
  Python Version: 3.8.2
42
-
43
22
  Installed Applications:
44
-
45
23
  ['django.contrib.admin',
46
-
47
24
  'django.contrib.auth',
48
-
49
25
  'django.contrib.contenttypes',
50
-
51
26
  'django.contrib.sessions',
52
-
53
27
  'django.contrib.messages',
54
-
55
28
  'django.contrib.staticfiles',
56
-
57
29
  'mahjongrecord']
58
-
59
30
  Installed Middleware:
60
-
61
31
  ['django.middleware.security.SecurityMiddleware',
62
-
63
32
  'django.contrib.sessions.middleware.SessionMiddleware',
64
-
65
33
  'django.middleware.common.CommonMiddleware',
66
-
67
34
  'django.middleware.csrf.CsrfViewMiddleware',
68
-
69
35
  'django.contrib.auth.middleware.AuthenticationMiddleware',
70
-
71
36
  'django.contrib.messages.middleware.MessageMiddleware',
72
-
73
37
  'django.middleware.clickjacking.XFrameOptionsMiddleware']
74
38
 
75
39
 
76
40
 
77
-
78
-
79
-
80
-
81
41
  Traceback (most recent call last):
82
-
83
- File "/home/ryu1maniwa/mahjongproject/mahjongenv/lib/python3.8/site-packages/django/db/backends/utils.py", line 86, in _execute
42
+ File "/home/mahjongproject/mahjongenv/lib/python3.8/site-packages/django/db/backends/utils.py", line 86, in _execute
84
-
85
43
  return self.cursor.execute(sql, params)
86
44
 
87
-
88
-
89
45
  The above exception (column mahjongrecord_mahjongplayermodel.username does not exist
90
-
91
46
  LINE 1: ...ETE FROM "mahjongrecord_mahjongplayermodel" WHERE "mahjongre...
92
-
93
47
  ^
94
-
95
48
  ) was the direct cause of the following exception:
96
-
97
- File "/home/ryu1maniwa/mahjongproject/mahjongenv/lib/python3.8/site-packages/django/core/handlers/exception.py", line 34, in inner
49
+ File "/home/mahjongproject/mahjongenv/lib/python3.8/site-packages/django/core/handlers/exception.py", line 34, in inner
98
-
99
50
  response = get_response(request)
100
-
101
- File "/home/ryu1maniwa/mahjongproject/mahjongenv/lib/python3.8/site-packages/django/core/handlers/base.py", line 115, in _get_response
51
+ File "/home/mahjongproject/mahjongenv/lib/python3.8/site-packages/django/core/handlers/base.py", line 115, in _get_response
102
-
103
52
  response = self.process_exception_by_middleware(e, request)
104
-
105
- File "/home/ryu1maniwa/mahjongproject/mahjongenv/lib/python3.8/site-packages/django/core/handlers/base.py", line 113, in _get_response
53
+ File "/home/mahjongproject/mahjongenv/lib/python3.8/site-packages/django/core/handlers/base.py", line 113, in _get_response
106
-
107
54
  response = wrapped_callback(request, *callback_args, **callback_kwargs)
108
-
109
- File "/home/ryu1maniwa/mahjongproject/mahjongenv/lib/python3.8/site-packages/django/contrib/auth/decorators.py", line 21, in _wrapped_view
55
+ File "/home/mahjongproject/mahjongenv/lib/python3.8/site-packages/django/contrib/auth/decorators.py", line 21, in _wrapped_view
110
-
111
56
  return view_func(request, *args, **kwargs)
112
-
113
- File "/home/ryu1maniwa/mahjongproject/mahjongrecord/views.py", line 65, in player_create_func
57
+ File "/home/mahjongproject/mahjongrecord/views.py", line 65, in player_create_func
114
-
115
58
  MahjongPlayerModel.objects.filter(username = request.user.username).delete()
116
-
117
- File "/home/ryu1maniwa/mahjongproject/mahjongenv/lib/python3.8/site-packages/django/db/models/query.py", line 722, in delete
59
+ File "/home/mahjongproject/mahjongenv/lib/python3.8/site-packages/django/db/models/query.py", line 722, in delete
118
-
119
60
  deleted, _rows_count = collector.delete()
120
-
121
- File "/home/ryu1maniwa/mahjongproject/mahjongenv/lib/python3.8/site-packages/django/db/models/deletion.py", line 314, in delete
61
+ File "/home/mahjongproject/mahjongenv/lib/python3.8/site-packages/django/db/models/deletion.py", line 314, in delete
122
-
123
62
  count = qs._raw_delete(using=self.using)
124
-
125
- File "/home/ryu1maniwa/mahjongproject/mahjongenv/lib/python3.8/site-packages/django/db/models/query.py", line 736, in _raw_delete
63
+ File "/home/mahjongproject/mahjongenv/lib/python3.8/site-packages/django/db/models/query.py", line 736, in _raw_delete
126
-
127
64
  return sql.DeleteQuery(self.model).delete_qs(self, using)
128
-
129
- File "/home/ryu1maniwa/mahjongproject/mahjongenv/lib/python3.8/site-packages/django/db/models/sql/subqueries.py", line 75, in delete_qs
65
+ File "/home/mahjongproject/mahjongenv/lib/python3.8/site-packages/django/db/models/sql/subqueries.py", line 75, in delete_qs
130
-
131
66
  cursor = self.get_compiler(using).execute_sql(CURSOR)
132
-
133
- File "/home/ryu1maniwa/mahjongproject/mahjongenv/lib/python3.8/site-packages/django/db/models/sql/compiler.py", line 1152, in execute_sql
67
+ File "/home/mahjongproject/mahjongenv/lib/python3.8/site-packages/django/db/models/sql/compiler.py", line 1152, in execute_sql
134
-
135
68
  cursor.execute(sql, params)
136
-
137
- File "/home/ryu1maniwa/mahjongproject/mahjongenv/lib/python3.8/site-packages/django/db/backends/utils.py", line 100, in execute
69
+ File "/home/mahjongproject/mahjongenv/lib/python3.8/site-packages/django/db/backends/utils.py", line 100, in execute
138
-
139
70
  return super().execute(sql, params)
140
-
141
- File "/home/ryu1maniwa/mahjongproject/mahjongenv/lib/python3.8/site-packages/django/db/backends/utils.py", line 68, in execute
71
+ File "/home/mahjongproject/mahjongenv/lib/python3.8/site-packages/django/db/backends/utils.py", line 68, in execute
142
-
143
72
  return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
144
-
145
- File "/home/ryu1maniwa/mahjongproject/mahjongenv/lib/python3.8/site-packages/django/db/backends/utils.py", line 77, in _execute_with_wrappers
73
+ File "/home/mahjongproject/mahjongenv/lib/python3.8/site-packages/django/db/backends/utils.py", line 77, in _execute_with_wrappers
146
-
147
74
  return executor(sql, params, many, context)
148
-
149
- File "/home/ryu1maniwa/mahjongproject/mahjongenv/lib/python3.8/site-packages/django/db/backends/utils.py", line 86, in _execute
75
+ File "/home/mahjongproject/mahjongenv/lib/python3.8/site-packages/django/db/backends/utils.py", line 86, in _execute
150
-
76
+ return self.cursor.execute(sql, params)
77
+ File "/home/mahjongproject/mahjongenv/lib/python3.8/site-packages/django/db/utils.py", line 90, in __exit__
78
+ raise dj_exc_value.with_traceback(traceback) from exc_value
79
+ File "/home/mahjongproject/mahjongenv/lib/python3.8/site-packages/django/db/backends/utils.py", line 86, in _execute
151
80
  return self.cursor.execute(sql, params)
152
81
 
153
- File "/home/ryu1maniwa/mahjongproject/mahjongenv/lib/python3.8/site-packages/django/db/utils.py", line 90, in __exit__
154
-
155
- raise dj_exc_value.with_traceback(traceback) from exc_value
156
-
157
- File "/home/ryu1maniwa/mahjongproject/mahjongenv/lib/python3.8/site-packages/django/db/backends/utils.py", line 86, in _execute
158
-
159
- return self.cursor.execute(sql, params)
160
-
161
-
162
-
163
82
  Exception Type: ProgrammingError at /manimahjongrecord/player_create/
164
-
165
83
  Exception Value: column mahjongrecord_mahjongplayermodel.username does not exist
166
-
167
84
  LINE 1: ...ETE FROM "mahjongrecord_mahjongplayermodel" WHERE "mahjongre...
168
-
169
85
  ^
170
-
171
-
172
-
173
86
 
174
87
 
175
88
  ```
176
89
 
177
-
178
-
179
90
  ### 該当のソースコード
180
-
181
91
  #####models.py
182
-
183
92
  ```python
184
-
185
93
  class MahjongPlayerModel(models.Model):
186
-
187
94
  username = models.CharField(max_length = 100, default = 'taro')
188
-
189
95
  player1 = models.CharField(max_length = 100, default = 'player1')
190
-
191
96
  player2 = models.CharField(max_length = 100, default = 'player2')
192
-
193
97
  player3 = models.CharField(max_length = 100, default = 'player3')
194
-
195
98
  player4 = models.CharField(max_length = 100, default = 'player4')
196
-
99
+ ```
100
+ #####wiews.py
101
+ 既に登録してあるプレイヤーを削除してから新たに登録して、save()しなおす仕組みなのですが、自分はここの2つの仕組みのどちらかに欠陥があるのではないかと思っています。しかしlocalhostで試したときはうまくいきました。
102
+ MahjongPlayerModel.objects.filter(username = request.user.username).delete()
103
+ username = request.user.username
104
+ ```
105
+ @login_required
106
+ def player_create_func(request):
107
+ if request.method == 'POST':
108
+ player1 = request.POST['player1']
109
+ player2 = request.POST['player2']
110
+ player3 = request.POST['player3']
111
+ player4 = request.POST['player4']
112
+ MahjongPlayerModel.objects.filter(username = request.user.username).delete()
113
+ players = MahjongPlayerModel(username = request.user.username, player1 = player1, player2 = player2, player3 = player3, player4 = player4)
114
+ players.save()
115
+ return redirect('top')
116
+ return render(request, 'playercreate.html')
197
117
  ```
198
118
 
119
+ なのでcollectstaticが正常にできていない可能性もあるのですが、その場合なぜできていないかはわかりませんでした。
199
- #####wiews.py
120
+ #####settings.py
200
-
201
- 既に登録してあるプレイヤーを削除してから新たに登録して、save()しなおす仕組みなのですが、自分はここの2つの仕組みのどちらかに欠陥があるのではないかと思っています。しかしlocalhostで試したときはうまくいきました。
202
-
203
- MahjongPlayerModel.objects.filter(username = request.user.username).delete()
204
-
205
- username = request.user.username
206
-
207
121
  ```
208
-
209
- @login_required
210
-
211
- def player_create_func(request):
212
-
213
- if request.method == 'POST':
214
-
215
- player1 = request.POST['player1']
216
-
217
- player2 = request.POST['player2']
218
-
219
- player3 = request.POST['player3']
220
-
221
- player4 = request.POST['player4']
222
-
223
- MahjongPlayerModel.objects.filter(username = request.user.username).delete()
224
-
225
- players = MahjongPlayerModel(username = request.user.username, player1 = player1, player2 = player2, player3 = player3, player4 = player4)
226
-
227
- players.save()
228
-
229
- return redirect('top')
230
-
231
- return render(request, 'playercreate.html')
232
-
233
- ```
234
-
235
-
236
-
237
- なのでcollectstaticが正常にできていない可能性もあるのですが、その場合なぜできていないかはわかりませんでした。
238
-
239
- #####settings.py
240
-
241
- ```
242
-
243
122
  STATIC_URL = '/sta/'
244
123
 
245
-
246
-
247
124
  #STATICFILES_DIRS = [
248
-
249
125
  # os.path.join(BASE_DIR, 'static/')
250
-
251
126
  #]
252
-
253
127
  STATIC_ROOT = os.path.join(BASE_DIR, 'static/')
254
-
255
128
  LOGIN_URL = 'login'
256
-
257
129
  ```

1

書式の改善

2020/08/03 14:54

投稿

prairie
prairie

スコア6

test CHANGED
File without changes
test CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  gunicorn --bind 0.0.0.0:8000 mahjongproject.wsgi
10
10
 
11
- で借りたipアドレスを入れ、正常に動作するか試してみました。すると、loclahostでは正常に動作していたところでエラーが出てしまいました。top画面には入れていcollectstaticはできていると思うので、本番環境と何が違ってるのかわかりせんでした
11
+ で借りたipアドレスを入れ、正常に動作するか試してみました。すると、loclahostでは正常に動作していたところでエラーが出てしまったので、本番環境とで何が違ってるのかわかりせんでした。top画面には入れているのでcollectstaticはできていると思いま
12
12
 
13
13
 
14
14
 
@@ -20,6 +20,8 @@
20
20
 
21
21
  MahjongPlayerModelに、入力した情報が保存されるはずなのですが、以下のようなエラー画表示が出てしまいました。
22
22
 
23
+ (models.pyの内容は下に載せてあります。)
24
+
23
25
  ```
24
26
 
25
27
  Environment: