Сбросить электронную почту пришлите мне example.com url - PullRequest
2 голосов
/ 10 июня 2019

Когда я пытаюсь использовать пароль пароль / сброс, отправьте мне письмо с этим URL-адресом

http://example.com/password-reset/confirm/MjM/572-52a21bbd1b80e9377f98/ Есть идеи ??

settings.py


SITE_ID = 1
#Registro simple sin correo
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'

#Login no mail
ACCOUNT_AUTHENTICATION_METHOD = 'email'
ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_EMAIL_VERIFICATION = 'mandatory'
ACCOUNT_CONFIRM_EMAIL_ON_GET = True
ACCOUNT_EMAIL_CONFIRMATION_ANONYMOUS_REDIRECT_URL = 
reverse_lazy('account_confirm_complete')
ACCOUNT_EMAIL_CONFIRMATION_AUTHENTICATED_REDIRECT_URL = 
reverse_lazy('account_confirm_complete')
ACCOUNT_USERNAME_REQUIRED = False
#Following is added to enable registration with email instead of username
AUTHENTICATION_BACKENDS = (
 # Needed to login by username in Django admin, regardless of `allauth`
 "django.contrib.auth.backends.ModelBackend",

 # `allauth` specific authentication methods, such as login by e-mail
 "allauth.account.auth_backends.AuthenticationBackend",
)

1 Ответ

1 голос
/ 11 июня 2019

Это, очевидно, произойдет, если вы используете SITE_ID=1 в своих настройках.В пакете django-all-auth используется значение domain поля SITE_ID при создании почты для сброса пароля .

Итак, вы можете сделать либо:

1.Измените значение domain существующих SITE_ID

Запустите скрипт в вашей Оболочке Django

from django.conf import settings
from django.contrib.sites.models import Site

site = Site.objects.get(id=settings.SITE_ID)
site.domain = "your.required.domain.com"
site.name = "Some Readable Name for Your Site"
site.save()

2.Создайте новый Site экземпляр и поместите вновь созданный идентификатор сайта в settings.py

Запустите это на оболочке django,

from django.contrib.sites.models import Site

site = Site.objects.create(domain="your.required.domain.com", name="Some Readable Name for Your Site")
print(site.id)

Теперь вы получитеновый идентификатор сайта , поместите это в settings.py как,

#settings.py
SITE_ID = 123 # here "123" is the id of your newly creted site object

Примечание

Эти вещи ( 1 и 2 ) также можно выполнить через консоль администратора Django.

...