Django 重定向在身份验证中不起作用

时间:2021-06-09 11:16:10

标签: django redirect django-views

我正在尝试对注册用户进行身份验证。重定向在我的情况下不起作用。单击登录按钮后,它会再次显示登录页面。我希望用户在成功登录后转到主页。这是我的文件。

views.py

from django.shortcuts import render, redirect
from django.http import HttpResponseRedirect
from django.contrib import messages
from django.contrib.auth import authenticate, login, logout

def register_new_a(request):
    saved = False
    if request.method == "POST":
    # take whatever is posted to the Details Form
        form = DetailsForm(request.POST)
        if form.is_valid():
            form.save()
            messages.success(request, 'Your account details have been saved!')
            return HttpResponseRedirect('/register_new_a?saved=True')
    else:
        form = DetailsForm()
        if 'saved' in request.GET:  # sends saved var in GET request
           saved = True

    return render(request, 'register1.html', {'form': form, 'saved': saved})

def loginUser(request):
    if request.method == "POST":
        username = request.POST.get('username')
        password = request.POST.get('password')

        user = authenticate(request, username=username, password=password)
        if user is not None:
        # at backend authenticated the credentials
            login(request, user)
            return redirect('home') # not working
    return render(request, 'login_a.html')

urls.py

from django.contrib import admin
from django.urls import path
from home import views

urlpatterns = [
path("", views.index, name='home'),
path("login", views.loginUser, name='login'),
path("logout", views.logoutUser, name='logout'),
#path("register", views.register, name='register'),
path("register_new_a", views.register_new_a, name='register_new_a'),
path("register_new_b", views.register_new_b, name='register_new_b'),
path("about", views.about, name='about'),
]

login_a.html

{% extends 'base.html'%}
{% block title %}Login{% endblock title %}

{% block body %}
<div class="container my-3" >
<h1 class="display-3" align="center">Login Here</h1>
<br>
<h1 class="display-6" >STEP 1: </h1>

<form method="post" action="">
{% csrf_token %}
<div class="mb-3">
<label for="Username1" class="form-label" >Username </label>
<input type="username"class="form-control" name="username"></input>
</div>
<div class="mb-3">
<label for="Password1" class="form-label">Password</label>
<input type="password" class="form-control" id="Password1" name="password">
</div>
  New user? <a href="register_new_a">Register Here</a>
<button type="submit" class="btn btn-primary float-end" style="background: #0a9396" > Next</button>

</form>

</div>
{% endblock body %}

任何帮助将不胜感激。

0 个答案:

没有答案