Джанго Сброс пароля несколько - PullRequest
1 голос
/ 17 марта 2019

Здравствуйте. Я пытаюсь создать вид сброса пароля в Django. Я настроил почтовый сервер, URL-адреса и шаблоны. Все выглядит хорошо, но когда я пытаюсь отправить почту для сброса пароля, Django отправляет несколько писем. Например, 7 или 11 электронной почты сброса пароля одновременно. Как я могу сделать это только одно письмо за каждый раз.

Большое спасибо

Вот что я сделал:

setting.py:

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST_USER = "my_email"
EMAIL_HOST_PASSWORD = "my_password"
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_USE_TLS = True

urls.py

path('password-reset/',
     auth_views.PasswordResetView.as_view(template_name='accounts/password_reset.html'),
     name='password_reset'),
path('password-reset/done/',
     auth_views.PasswordResetDoneView.as_view(template_name='accounts/password_reset_done.html'),
     name='password_reset_done'),
path('password-set-confirm/<uidb64>/<token>/',
     auth_views.PasswordResetConfirmView.as_view(template_name='accounts/password_reset_confirm.html'),
     name='password_reset_confirm'),
path('password-set-complete/',
     auth_views.PasswordResetCompleteView.as_view(template_name='accounts/password_reset_complete.html'),
     name='password_reset_complete'),

Кроме того, я устанавливаю шаблоны для каждого представления.

Ответы [ 2 ]

1 голос
/ 17 марта 2019

Иногда помогает проверить сам исходный код Django, поэтому всегда углубляйтесь в это, если не понимаете, что происходит.

Если вы посмотрите на PasswordResetForm метод save() в django.contrib.auth.forms, вы увидите, что он проходит через self.get_users(email) и затем отправляет одно (и только одно) электронное письмо для каждого user.

Таким образом, единственный способ отправить несколько электронных писем - это если несколько пользователей с одинаковым email.

0 голосов
/ 17 марта 2019

Я не думаю, что это какая-то настройка для одного и того же, вы можете в конечном итоге вызывать один и тот же URL несколько раз, это может быть проблемой логики. Попробуйте использовать режим отладки или с помощью операторов печати. ​​

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...