Django 控制台中不存在带有激活链接的确认邮件

Django 控制台中不存在带有激活链接的确认邮件,django,django-authentication,django-email,Django,Django Authentication,Django Email,我已经写了注册代码,在其中输入名称和密码后,它会将我们重定向到电子邮件发送页面,以及它假设在控制台中发送邮件,但它没有出现 views.py 设置.py 设置中的电子邮件配置 EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' url.py 这是下面使用的url映射 urlpatterns = [ path('register/', signup,name='sinup_user'), path('

我已经写了注册代码,在其中输入名称和密码后,它会将我们重定向到电子邮件发送页面,以及它假设在控制台中发送邮件,但它没有出现

views.py 设置.py 设置中的电子邮件配置

EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'

url.py 这是下面使用的url映射

urlpatterns = [
    path('register/', signup,name='sinup_user'),
    path('password_reset/',auth_view.PasswordResetView.as_view(), name='password_reset'),
path('password_reset/done/',auth_view.PasswordResetDoneView.as_view(), name='password_reset_done'),
    path('reset/done',auth_view.PasswordResetCompleteView.as_view(), name='password_reset_complete'),
    path('account_activation_sent/', account_activation_sent, name='account_activation_sent'),
    path('activate/<uidb64>/<token>/', activate, name='activate'),
安慰 以下文字在控制台中显示,但邮件未显示在此处

System check identified no issues (0 silenced).
October 12, 2019 - 12:50:55
Django version 2.2.6, using settings 'music.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
[12/Oct/2019 12:51:41] "GET /user/register/ HTTP/1.1" 200 4282
[12/Oct/2019 12:52:03] "POST /user/register/ HTTP/1.1" 302 0
[12/Oct/2019 12:52:03] "GET /user/account_activation_sent/ HTTP/1.1" 200 

您需要确保在settings.py中正确设置了电子邮件后端:

EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
此外,发送电子邮件的代码应该缩进到“if form.is_valid():”下,否则即使表单无效,您也会被重定向到“account\u activation\u sent”

'else:'子句也需要正确缩进

def signup(request):
    if request.method == 'POST':
        form = SignUpForm(request.POST)
        if form.is_valid():
            user = form.save(commit=False)
            user.is_active = False
            user.save()
            current_site = get_current_site(request)
            subject = 'Activate Your MySite Account'
            message = render_to_string('account_activation_email.html', {
                'user': user,
                'domain': current_site.domain,
                'uid': urlsafe_base64_encode(force_bytes(user.pk)),
                'token': account_activation_token.make_token(user),
            })
            user.email_user(subject, message)
            return redirect('account_activation_sent')
    else:
        form = SignUpForm()
    return render(request, 'signup.html', {'form': form})
也看到


或者您可以使用django allauth为您完成所有这些,只需修改默认模板。

您需要确保在settings.py中正确设置电子邮件后端:

EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
此外,发送电子邮件的代码应该缩进到“if form.is_valid():”下,否则即使表单无效,您也会被重定向到“account\u activation\u sent”

'else:'子句也需要正确缩进

def signup(request):
    if request.method == 'POST':
        form = SignUpForm(request.POST)
        if form.is_valid():
            user = form.save(commit=False)
            user.is_active = False
            user.save()
            current_site = get_current_site(request)
            subject = 'Activate Your MySite Account'
            message = render_to_string('account_activation_email.html', {
                'user': user,
                'domain': current_site.domain,
                'uid': urlsafe_base64_encode(force_bytes(user.pk)),
                'token': account_activation_token.make_token(user),
            })
            user.email_user(subject, message)
            return redirect('account_activation_sent')
    else:
        form = SignUpForm()
    return render(request, 'signup.html', {'form': form})
也看到


或者您可以使用django allauth来完成所有这些,只需修改默认模板。

我在url模式中犯了错误

url.py 错误模式的url

path('signup/', user_views.signup,name='sinup'),
path('account_activation_sent/', user_views.account_activation_sent, name='account_activation_sent'),
path('activate/<uidb64>/<token>/', user_views.activate, name='activate'),
path('signup/',user_views.signup,name='sinup'),
路径('account\u activation\u sent/',user\u views.account\u activation\u sent,name='account\u activation\u sent'),
路径('activate//',user_views.activate,name='activate'),
更正后的url模式

path('account/signup/', user_views.signup,name='sinup'),
path('account/account_activation_sent/', user_views.account_activation_sent, name='account_activation_sent'),
path('account/activate/<uidb64>/<token>/', user_views.activate, name='activate'),
path('account/signup/',user_views.signup,name='sinup'),
路径('account/account\u activation\u sent/',user\u views.account\u activation\u sent,name='account\u activation\u sent'),
路径('account/activate//',user_views.activate,name='activate'),

在url开始之前,我必须添加帐户/但现在它工作正常。我在url模式中犯了错误

url.py 错误模式的url

path('signup/', user_views.signup,name='sinup'),
path('account_activation_sent/', user_views.account_activation_sent, name='account_activation_sent'),
path('activate/<uidb64>/<token>/', user_views.activate, name='activate'),
path('signup/',user_views.signup,name='sinup'),
路径('account\u activation\u sent/',user\u views.account\u activation\u sent,name='account\u activation\u sent'),
路径('activate//',user_views.activate,name='activate'),
更正后的url模式

path('account/signup/', user_views.signup,name='sinup'),
path('account/account_activation_sent/', user_views.account_activation_sent, name='account_activation_sent'),
path('account/activate/<uidb64>/<token>/', user_views.activate, name='activate'),
path('account/signup/',user_views.signup,name='sinup'),
路径('account/account\u activation\u sent/',user\u views.account\u activation\u sent,name='account\u activation\u sent'),
路径('account/activate//',user_views.activate,name='activate'),

在url开始之前,我必须添加account/因为我错过了它,现在它工作正常。

缩进被纠正了,因为它在问题中错误地发布了那样的内容。我引用了与你上面提到的相同的链接,只是做了与他们在该网站和电子邮件后端中所说的相同的事情。我也按照他们所说的进行了设置,但仍然没有解决“从mysite.core.forms导入SignUpForm”和用SignUpForm替换SinupForm的问题。请你发布模板和URL。py更正了SignUpForm吗没有像以前那样抛出任何错误,但仍然没有在consoleare用户上发送任何邮件。电子邮件用户(主题、消息)和返回重定向(“帐户激活发送”)现在缩进了12个空格?缩进被纠正了,因为它在问题中错误地发布了这样的内容。我引用了与你上面提到的相同的链接,只是做了与他们在该网站和电子邮件后端中所说的相同的事情。我也按照他们所说的进行了设置,但仍然没有解决“从mysite.core.forms导入SignUpForm”和用SignUpForm替换SinupForm的问题。请你发布模板和URL。py更正了SignUpForm吗没有像以前那样抛出任何错误,但仍然没有在consoleare用户上发送任何邮件。电子邮件用户(主题、消息)和返回重定向(“帐户激活发送”)现在缩进了12个空格?