質問編集履歴
2
エラー内容の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -2,13 +2,17 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
Djangoで「https://<ホスト名>/mypage/<ユーザ名>」のようなアクセスでログイン中のマイページに行けるようにコードを書いていますが、下記のように
|
5
|
+
Djangoで「https://<ホスト名>/mypage/<ユーザ名>」のようなアクセスでログイン中のマイページに行けるようにコードを書いていますが、下記のようにValueErrorが発生してしまいます。
|
6
6
|
|
7
7
|
|
8
8
|
|
9
|
-
|
9
|
+
DetailViewを継承したMyPageViewでルーティングに関するクラス変数をオーバーライドしても、デフォルトでルーティングに使われるpkが変数として利用されているままになってしまいます。
|
10
10
|
|
11
|
+
|
12
|
+
|
11
|
-
|
13
|
+
他のQ&Aや公式を参考にしても、硫黄量を得られず、エラーが改善されずにどうしたら良いものかと..
|
14
|
+
|
15
|
+
|
12
16
|
|
13
17
|
|
14
18
|
|
@@ -18,9 +22,9 @@
|
|
18
22
|
|
19
23
|
```
|
20
24
|
|
21
|
-
|
25
|
+
ValueError at /mypage/ユーザ名/
|
22
26
|
|
23
|
-
'
|
27
|
+
Field 'id' expected a number but got 'ユーザ名'.
|
24
28
|
|
25
29
|
Request Method: GET
|
26
30
|
|
@@ -28,11 +32,11 @@
|
|
28
32
|
|
29
33
|
Django Version: 3.0.3
|
30
34
|
|
31
|
-
Exception Type:
|
35
|
+
Exception Type: ValueError
|
32
36
|
|
33
37
|
Exception Value:
|
34
38
|
|
35
|
-
'
|
39
|
+
Field 'id' expected a number but got 'ユーザ名'.
|
36
40
|
|
37
41
|
```
|
38
42
|
|
@@ -74,11 +78,7 @@
|
|
74
78
|
|
75
79
|
from django.views import generic
|
76
80
|
|
77
|
-
from django.urls import reverse_lazy
|
78
|
-
|
79
|
-
from
|
81
|
+
from accounts.models import CustomUser
|
80
|
-
|
81
|
-
import logging
|
82
82
|
|
83
83
|
|
84
84
|
|
@@ -86,7 +86,7 @@
|
|
86
86
|
|
87
87
|
template_name = 'mypage.html'
|
88
88
|
|
89
|
-
model =
|
89
|
+
model = CustomUser
|
90
90
|
|
91
91
|
slug_field = 'username' #モデルのフィールド名
|
92
92
|
|
@@ -126,27 +126,25 @@
|
|
126
126
|
|
127
127
|
```
|
128
128
|
|
129
|
-
<a class="dropdown-item" href="{% url 'article:mypage' user.
|
129
|
+
<a class="dropdown-item" href="{% url 'article:mypage' user.username %}">Profile</a>
|
130
130
|
|
131
131
|
```
|
132
132
|
|
133
133
|
|
134
134
|
|
135
|
-
###
|
135
|
+
### 調べてみたこと
|
136
136
|
|
137
137
|
|
138
138
|
|
139
|
-
|
139
|
+
url.pyでのデフォルトのルーティングはpkとなっており、下記のDetailViewのクラス変数をオーバーライドするとルーティングにpk以外を使用できるようになる。
|
140
|
-
|
141
|
-
→同様のエラーとなってしまう
|
142
140
|
|
143
141
|
|
144
142
|
|
145
|
-
|
143
|
+
slug_field(モデルのフィールド名)
|
146
144
|
|
147
|
-
|
145
|
+
slug_url_kwarg(url.pyでのキーワード名)
|
148
146
|
|
149
|
-
|
147
|
+
pk_url_kwarg(urls.pyでの変数名)
|
150
148
|
|
151
149
|
|
152
150
|
|
1
urlタグの中身とurls.pyのルーティング部の変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -132,6 +132,22 @@
|
|
132
132
|
|
133
133
|
|
134
134
|
|
135
|
+
### 試してみたこと
|
136
|
+
|
137
|
+
|
138
|
+
|
139
|
+
- urlpatternsの中のpath()関数の引数をpath('mypage/<**slug:username**>/', views.MyPageView.as_view(), name='mypage')とした
|
140
|
+
|
141
|
+
→同様のエラーとなってしまう
|
142
|
+
|
143
|
+
|
144
|
+
|
145
|
+
-テンプレートのurlタグを
|
146
|
+
|
147
|
+
<a class="dropdown-item" href="{% url 'article:mypage' **user.username** %}">Profile</a>とした
|
148
|
+
|
149
|
+
→同様のエラーとなってしまう
|
150
|
+
|
135
151
|
|
136
152
|
|
137
153
|
### 補足情報(FW/ツールのバージョンなど)
|