質問編集履歴
1
forms.pyのスクリプトを一部更新。テンプレートファイルを新たに追記。
test
CHANGED
File without changes
|
test
CHANGED
@@ -8,7 +8,9 @@
|
|
8
8
|
ただ、現状の登録失敗の動作としてはフォームに入力したパスワードがクリアされるだけでエラーメッセージが表示されるわけではないので、登録失敗後にエラーメッセージを表示させたい。
|
9
9
|
|
10
10
|
<お伺いしたいこと>
|
11
|
+
forms.py内におけるメールアドレスが既に登録されていた場合の例外処理の書き方
|
11
|
-
|
12
|
+
テンプレートにおける、エラーメッセージを表示される処理の書き方
|
13
|
+
|
12
14
|
|
13
15
|
---
|
14
16
|
|
@@ -50,21 +52,6 @@
|
|
50
52
|
self.add_error('password1', 'パスワードが一致しません。正しいパスワードを入力してください。')
|
51
53
|
raise ValidationError('パスワードが一致しません。正しいパスワードを入力してください。')
|
52
54
|
return password
|
53
|
-
|
54
|
-
def clean_email(self):
|
55
|
-
email1 = self.cleaned_data["email"]
|
56
|
-
email = CustomUser.objects.filter(
|
57
|
-
email=email1).exists()
|
58
|
-
if email:
|
59
|
-
self.add_error('email', 'このメールアドレスは既に使用されています。他のメールアドレスを登録してください。')
|
60
|
-
raise ValidationError('このメールアドレスは既に使用されています。他のメールアドレスを登録してください。')
|
61
|
-
|
62
|
-
"""
|
63
|
-
if email == email1:
|
64
|
-
self.add_error('email', 'このメールアドレスは既に使用されています。他のメールアドレスを登録してください。')
|
65
|
-
raise ValidationError('このメールアドレスは既に使用されています。他のメールアドレスを登録してください。')
|
66
|
-
return email
|
67
|
-
"""
|
68
55
|
|
69
56
|
```
|
70
57
|
|
@@ -125,6 +112,59 @@
|
|
125
112
|
|
126
113
|
```
|
127
114
|
|
115
|
+
signup_1.html(フォームのテンプレート)
|
116
|
+
```signup_1.html
|
117
|
+
{% load static %}
|
118
|
+
{% load widget_tweaks %}
|
119
|
+
{{ form.title.errors }}
|
120
|
+
|
121
|
+
<!DOCTYPE html>
|
122
|
+
<html lang="ja">
|
123
|
+
|
124
|
+
<head>
|
125
|
+
<meta charset="UTF-8">
|
126
|
+
<title>アカウント作成</title>
|
127
|
+
<link rel="stylesheet" href="{% static 'css/toppage/signup_1.css' %}">
|
128
|
+
</head>
|
129
|
+
|
130
|
+
<header>
|
131
|
+
<h2 class="title">アカウントのセットアップ</h2>
|
132
|
+
<p class="description">新しいアカウントを作成しよう</p>
|
133
|
+
</header>
|
134
|
+
|
135
|
+
<body>
|
136
|
+
<form method='POST' class='form'>
|
137
|
+
{% csrf_token %}
|
138
|
+
<p>ユーザー名</p>
|
139
|
+
<br>{{ form.username | add_class:"form-control" }}
|
140
|
+
<p>メールアドレス</p>
|
141
|
+
<br>{{ form.email | add_class:"form-control" }}
|
142
|
+
<p>パスワード</p>
|
143
|
+
<br>{{ form.password | add_class:"form-control"}}
|
144
|
+
<p>パスワード確認用</p>
|
145
|
+
<br>{{ form.password1 | add_class:"form-control"}}
|
146
|
+
|
147
|
+
{% if form.errors %}
|
148
|
+
<ul class="error_message">
|
149
|
+
{% for error in form.password1.errors %}
|
150
|
+
<li>{{ error }}</li>
|
151
|
+
{% endfor %}
|
152
|
+
</ul>
|
153
|
+
{% endif %}
|
154
|
+
|
155
|
+
<input type='submit' value='登録する' class="submit-bottun">
|
156
|
+
</form>
|
157
|
+
</body>
|
158
|
+
|
159
|
+
|
160
|
+
<footer>
|
161
|
+
</footer>
|
162
|
+
|
163
|
+
|
164
|
+
</html>
|
165
|
+
|
166
|
+
```
|
167
|
+
|
128
168
|
views.py
|
129
169
|
```views.py
|
130
170
|
from django.shortcuts import render
|