Python django注册/登录视图使用@login\u required decorator

Python django注册/登录视图使用@login\u required decorator,python,django,login,Python,Django,Login,我正在尝试为用户创建一个单独的注册视图,但它不起作用,因为我在我的“配置文件”视图上使用了@login\u required decorator,登录后应该重定向到该视图。当前登录用户视图工作正常 问题:在“配置文件”视图中使用@login\u required decorator时,如何注册用户 对于登录和注册视图,我的代码如下所示: def login_user(request): message = None if request.method == 'POST': if

我正在尝试为用户创建一个单独的注册视图,但它不起作用,因为我在我的“配置文件”视图上使用了@login\u required decorator,登录后应该重定向到该视图。当前登录用户视图工作正常

问题:在“配置文件”视图中使用@login\u required decorator时,如何注册用户

对于登录和注册视图,我的代码如下所示:

def login_user(request):
  message = None
  if request.method == 'POST':
    if 'login' in request.POST:
        form = AuthenticationForm(data=request.POST)
        if form.is_valid():
            user = authenticate(username=form.cleaned_data['email'], password=form.cleaned_data['password'])
            if not user:
                message = "Invalid email or password!"
            else:
                login(request, user)
                return redirect('profile')
  return render(request, 'users/login.html', {'message': message})


def register_user(request):
  message = None
  if request.method == 'POST':
    user_form = RegistrationForm(data=request.POST)
    if user_form.is_valid():
        user_form.save()
        user = authenticate(username=user_form.cleaned_data['email'],
                            password=user_form.cleaned_data['password1'])
        if user:
            login(request, user)
            return redirect('profile')
    else:
        message = "Email already exists or passwords do not match"
  return render(request, 'users/register.html', {'message': message})

为了让我的注册页面绕过@login\u required decorator,我使用了login(request,user)方法,但这似乎不起作用

您必须提到后端作为登录函数的第三个参数。 因此,在注册用户函数中:

if user:
    # specify the backend as the third argument
    login(request, user, backend='django.contrib.auth.backends.ModelBackend')
    return redirect('profile')

哪个部分不工作?
profile
profile\u-card
之间有什么区别?这两种视图都应该是profile。刚刚编辑了那篇文章,谢谢!尽管如此,这在代码中并没有什么不同。当用户登录时,他们被重定向到“配置文件”页面;但是,当用户注册时,他们会被重定向到登录页面,因为“profile”视图上有@login_必需的装饰符。因此,基本上我希望能够注册一个用户,并被重定向到“配置文件”页面,而不是登录页面。