質問編集履歴

2

コードの修正、結果の追記

2022/01/27 02:46

投稿

nakaya
nakaya

スコア0

test CHANGED
File without changes
test CHANGED
@@ -9,8 +9,26 @@
9
9
 
10
10
  問題としてWindowsの設定の問題かsetting.pyが間違っていると考えております。
11
11
  どなたか解決策教えて頂けると大変参考になります。
12
+
13
+ コマンドプロンプト上ではパスワードの自動生成をできており、ログインもできます。前前前~までは表示されております。
14
+ その為、send_mailが動いてないと考えています。()
15
+
16
+
12
17
  ```views.py
18
+
19
+ from email import message
20
+ from django.shortcuts import render
21
+ from django.views import generic
22
+ from django.contrib import messages
23
+ from django.urls import reverse_lazy,reverse
24
+ from django.http import HttpResponseRedirect
25
+ from accounts.models import *
26
+ from task.models import *
13
- コード
27
+ from .forms import *
28
+ from django.http import HttpResponse
29
+ from django.core.mail import send_mail
30
+
31
+ import random,string
14
32
 
15
33
  # ユーザー登録view
16
34
  class UserCreateView(generic.CreateView):

1

画像を削除し、コードを追加いたしました。見ずらいなどありました随時更新いたします。

2022/01/27 02:42

投稿

nakaya
nakaya

スコア0

test CHANGED
File without changes
test CHANGED
@@ -9,9 +9,142 @@
9
9
 
10
10
  問題としてWindowsの設定の問題かsetting.pyが間違っていると考えております。
11
11
  どなたか解決策教えて頂けると大変参考になります。
12
+ ```views.py
13
+ コード
12
14
 
15
+ # ユーザー登録view
16
+ class UserCreateView(generic.CreateView):
17
+ model = CustomUser
18
+ template_name = "user_create.html"
19
+ form_class = UserCreateForm
13
- ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-01-26/85b1f6d1-35ae-4888-a769-8824ddb6dced.png)
20
+ success_url = reverse_lazy('task:user_list')
14
21
 
15
- ![![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-01-26/1fe855ab-fddd-4cf7-891e-4cf70b4c2314.png)
22
+
16
23
 
24
+
25
+ def send_Email(self,request):
26
+ """題名"""
27
+ subject = "題名"
28
+ """本文"""
29
+ message = "本文です\nこんにちは。メールを送信しました"
30
+ """送信元メールアドレス"""
31
+ from_email = "totoyamiti0112@gmail.com"
32
+ """宛先メールアドレス"""
33
+ recipient_list = [
34
+ 'totoyamiti0112@gmail.com'
35
+ ]
36
+ print("前前前前前前前前前前前前前前前前前前前前前前前前前前前前前前前前前前前前前前前前前前前前")
37
+ send_mail(subject, message, from_email, recipient_list)
38
+ print("後後後後後後後後後後後後後後後後後後後後後後後後後後後後後後後後後後後後後後後後後後後後後")
17
- ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-01-26/bde66204-cddd-4eec-8ba8-9b0560cbf3de.png)
39
+ return HttpResponse('<h1>email send complete</h1>')
40
+
41
+ def form_valid(self,form):
42
+ obj = form.save(commit=False)
43
+ # 作成時に紐づける
44
+ obj.user_school = self.request.user.user_school
45
+
46
+ # ランダム文字列生成
47
+ randlst = [random.choice(string.ascii_letters + string.digits) for i in range(10)]
48
+ random_string = ''.join(randlst)
49
+ print("************************")
50
+ print(random_string)
51
+ print("************************")
52
+ obj.set_password(random_string)
53
+
54
+ obj.save()
55
+
56
+ messages.success(self.request,'ユーザーを作成しました。')
57
+ self.send_Email(self.request)
58
+ return super().form_valid(form)
59
+
60
+ def form_invalid(self,form):
61
+ messages.error(self.request,'失敗しました。')
62
+ return super().form_invalid(form)
63
+
64
+ ```
65
+
66
+
67
+
68
+ ```setting.py
69
+ コード
70
+
71
+
72
+ INSTALLED_APPS = [
73
+ 'django.contrib.admin',
74
+ 'django.contrib.auth',
75
+ 'django.contrib.contenttypes',
76
+ 'django.contrib.sessions',
77
+ 'django.contrib.messages',
78
+ 'django.contrib.staticfiles',
79
+
80
+ # taskアプリケーション
81
+ 'task.apps.TaskConfig',
82
+
83
+ # accountsアプリケーション
84
+ 'accounts.apps.AccountsConfig',
85
+
86
+ # allauth
87
+ 'django.contrib.sites',
88
+ 'allauth',
89
+ 'allauth.account',
90
+ ]
91
+
92
+ DATABASES = {
93
+ 'default': {
94
+ 'ENGINE': 'django.db.backends.postgresql_psycopg2',
95
+ 'NAME': 'amsg',
96
+ 'USER': 'postgres',
97
+ 'PASSWORD': 'postgres',
98
+ 'HOST': 'localhost',
99
+ 'PORT': '5432',
100
+ }
101
+ }
102
+
103
+ AUTH_USER_MODEL = 'accounts.CustomUser'
104
+
105
+
106
+ # django-allauth で利用するdjango.contrib.sitesを使うためにサイト識別用IDを設定
107
+ SITE_ID = 1
108
+
109
+ AUTHENTICATION_BACKENDS = (
110
+ 'allauth.account.auth_backends.AuthenticationBackend',
111
+ # 一般ユーザー用(メールアドレス認証)
112
+ 'django.contrib.auth.backends.ModelBackend',
113
+ # 管理サイト用(ユーザー名認証)
114
+ )
115
+
116
+ # メールアドレス認証に変更する設定
117
+ ACCOUNT_AUTHENTICATION_METHOD = 'email'
118
+ ACCOUNT_USERNAME_REQUIRED = False
119
+
120
+ # サインアップにメールアドレス確認を挟むように設定
121
+ ACCOUNT_EMAIL_VERIFICATION = 'mandatory'
122
+ ACCOUNT_EMAIL_REQUIRED = True
123
+
124
+ # ログイン/ログアウト後の遷移先を設定
125
+ #LOGIN_REDIRECT_URL = 'diary:diary_list'
126
+ LOGIN_REDIRECT_URL = 'task:toppage'
127
+ ACCOUNT_LOGOUT_REDIRECT_URL = 'account_login'
128
+
129
+ # ログアウトリンクのクリック一発でログアウトする設定
130
+ ACCOUNT_LOGOUT_ON_GET = True
131
+
132
+ # django-allauthが送信するメールの件名に自動付与される接頭辞をブランクにする設定
133
+ ACCOUNT_EMAIL_SUBJECT_PREFIX = ''
134
+
135
+ # デフォルトのメール送信先を設定
136
+ DEFAULT_FROM_EMAIL = 'totoyamiti0112@gmail.com'
137
+
138
+
139
+ STATICFILES_DIRS = (
140
+ os.path.join(BASE_DIR,'static'),
141
+ )
142
+
143
+ EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
144
+ # EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
145
+
146
+ EMAIL_HOST = 'localhost'
147
+ EMAIL_PORT = 587
148
+ EMAIL_HOST_USER = 'totoyamiti0112@gmail.com'
149
+ EMAIL_HOST_PASSWORD = 'bpwjwocxyyjgvjta'
150
+ EMAIL_USE_TLS = True`