小编Shi*_*iko的帖子

如何将登录表单自定义为用户的电子邮件而不是用户的用户名

我正在遵循 Django 登录教程,完成后我发现登录表单需要用户名和密码,但我想用用户的电子邮件替换用户名。

这是views.py

@login_required
def register(request):
    if request.method == 'POST':
        form = UserRegisterForm(request.POST)
        if form.is_valid():
            form.save()
            username = form.cleaned_data.get('username')
            messages.success(request, f'Your account has been created! You are now able to log in')
            return redirect('login')
    else:
        form = UserRegisterForm()
    return render(request, 'users/register.html', {'form': form})
 
 
@login_required
def profile(request):
    if request.method == 'POST':
        u_form = UserUpdateForm(request.POST, instance=request.user)
        p_form = ProfileUpdateForm(request.POST,
                                   request.FILES,
                                   instance=request.user.profile)
        if u_form.is_valid() and p_form.is_valid():
            u_form.save()
            p_form.save()
            messages.success(request, f'Your account has been updated!')
            return redirect('profile')
 
    else:
        u_form = UserUpdateForm(instance=request.user)
        p_form = …
Run Code Online (Sandbox Code Playgroud)

python django

1
推荐指数
1
解决办法
1159
查看次数

标签 统计

django ×1

python ×1