質問編集履歴

3

修正

2019/08/17 07:00

投稿

django
django

スコア19

test CHANGED
File without changes
test CHANGED
@@ -9,6 +9,8 @@
9
9
  ですがurlを少しでも変更すると自作したtemplateの表示になります。
10
10
 
11
11
  accounts/password_changeでも自作したものには出来ないんでしょうか。
12
+
13
+ [こちらのサイト](https://narito.ninja/blog/detail/44/)を参考にしています。
12
14
 
13
15
 
14
16
 

2

修正

2019/08/17 07:00

投稿

django
django

スコア19

test CHANGED
File without changes
test CHANGED
@@ -14,9 +14,11 @@
14
14
 
15
15
  ```url
16
16
 
17
- path('password_change/', views.PasswordChange.as_view(), name='password_change'), #追加
17
+ path('password_change/', views.PasswordChange.as_view(), name='password_change'), #管理画面
18
18
 
19
+ #path('password_chan/', views.PasswordChange.as_view(), name='password_change'), #自作したtemplateになる
20
+
19
- path('password_change/done/',views.PasswordChangeDone.as_view(),name='password_change_done'), #追加
21
+ path('password_change/done/',views.PasswordChangeDone.as_view(),name='password_change_done'),
20
22
 
21
23
  ```
22
24
 

1

修正

2019/08/17 06:54

投稿

django
django

スコア19

test CHANGED
File without changes
test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  URLでaccounts/password_changeとすると
6
6
 
7
- templateの表示がdjangoの管理画面が出てきます。
7
+ templateの表示がdjangoの管理の変更画面が出てきます。
8
8
 
9
9
  ですがurlを少しでも変更すると自作したtemplateの表示になります。
10
10
 
@@ -14,8 +14,52 @@
14
14
 
15
15
  ```url
16
16
 
17
- path('password_change/', views.PasswordChange.as_view(), name='password_change'), #追加
17
+ path('password_change/', views.PasswordChange.as_view(), name='password_change'), #追加
18
18
 
19
- path('password_change/done/',views.PasswordChangeDone.as_view(),name='password_change_done'), #追加
19
+ path('password_change/done/',views.PasswordChangeDone.as_view(),name='password_change_done'), #追加
20
20
 
21
21
  ```
22
+
23
+ ```view
24
+
25
+ class PasswordChange(LoginRequiredMixin,PasswordChangeView):
26
+
27
+ """パスワード変更ビュー"""
28
+
29
+ form_class = forms.MyPasswordChangeForm
30
+
31
+ success_url = reverse_lazy('accounts:password_change_done')
32
+
33
+ template_name = 'accounts/password_change.html'
34
+
35
+
36
+
37
+
38
+
39
+ class PasswordChangeDone(LoginRequiredMixin,PasswordChangeDoneView):
40
+
41
+ """パスワード変更しました"""
42
+
43
+ template_name = 'accounts/password_change_done.html'
44
+
45
+ ```
46
+
47
+ ```forms
48
+
49
+
50
+
51
+ class MyPasswordChangeForm(PasswordChangeForm):
52
+
53
+ """パスワード変更フォーム"""
54
+
55
+
56
+
57
+ def __init__(self, *args, **kwargs):
58
+
59
+ super().__init__(*args, **kwargs)
60
+
61
+ for field in self.fields.values():
62
+
63
+ field.widget.attrs['class'] = 'form-control'
64
+
65
+ ```