使用用户类重定向到同一页面的Django登录

时间:2018-11-06 02:57:30

标签: html django authentication login

我是Django的新手,我正在开发一个具有登录和注册等功能的网站。我已经尝试过注册功能(registrarUsuario),并且我认为它可以正常工作,但是当我尝试使用创建的帐户登录时,它会将我重定向到同一页面,并且用户未登录(我检查了此request.user.is_authenticated)。我做了很多研究,但还没有找到解决方案。

注意:该登录名曾经与我使用django创建的预定义用户(仅用户名和密码)一起使用...,但我将自己的模型与User类一起使用< / p>

我将发布注册用户代码,以防出现问题。

观看次数

def registroUsuarios(request): #REGISTER USER FUNCTION

    form=RegistrarUsuario(request.POST)
    if form.is_valid():
        data=form.cleaned_data
        regDB=User.objects.create_user(data.get("username"),data.get("password"))
        usuario=Usuario(user=regDB,correo=data.get("correo"),nombreCompleto=data.get("nombreCompleto"),direccionUsuario=data.get("direccionUsuario"),perfil=data.get("perfil"))
        regDB.save() 
        usuario.save()
    usuarios=Usuario.objects.all()
    form=RegistrarUsuario()
    titulo="Mis Perris | Registro Usuarios"
    return render(request,"registroUsuarios.html",{'titulo':titulo,'form':form,'usuarios':usuarios})

def ingresar(request):     #LOG IN FUNCTION 
    titulo="Mis Perris | Login"
    form=Login(request.POST or None)
    if form.is_valid():
        data=form.cleaned_data
        user=authenticate(username=data.get("username"),password=data.get("password"))
        if user is not None:
            login(request,user)
            return redirect('inicio')
    return render(request,"login.html",{'form':form,'titulo':titulo})

模型

class Usuario(models.Model):  #USER CLASS
    user=models.OneToOneField(User,on_delete=models.CASCADE)
    #username=models.CharField(primary_key=True, max_length=20)
    #password=models.CharField(max_length=20)
    correo=models.EmailField(max_length=30)
    nombreCompleto=models.CharField(max_length=30)
    direccionUsuario=models.CharField(max_length=30)
    perfil=models.CharField(max_length=20,default="Guest")

表格

perfiles=(
    ('Administrador','Administrador'),
    ('Guest','Guest'),
    ('Usuario','Usuario'),
)



class RegistrarUsuario(forms.Form): #REGISTER USER
    username=forms.CharField(widget=forms.TextInput(),label="Nombre de Usuario")
    password=forms.CharField(widget=forms.PasswordInput(),label="Contraseña")
    correo=forms.EmailField(widget=forms.EmailInput(),label="Correo")
    nombreCompleto=forms.CharField(widget=forms.TextInput(),label="Nombre Completo")
    direccionUsuario=forms.CharField(widget=forms.TextInput(),label="Dirección")
    perfil=forms.ChoiceField(choices=perfiles)

class Login(forms.Form):
    username=forms.CharField(widget=forms.TextInput(),label="Nombre de Usuario")
    password=forms.CharField(widget=forms.PasswordInput(),label="Contraseña")

LOGIN.HTML

{% extends "master.html" %}
{% load static %}
{% block Login %}
<section class="login-block">
    <div class="logincontainer">
<div class="row">
    <div class="col-md-4 register-sec">
        <h2 class="text-center">Iniciar Sesión</h2>
        <form method="POST" class="login-form">


            <div class="col-10">
                {% csrf_token %} 
                {{form.as_p}} 
            </div>


<div class="form-check col-md-11">
<button type="submit" class="btn btn-login float-left">Iniciar Sesión</button>
<input class="btn btn-login float-right" type="button" value="Registrarse" onclick="location.href = '{% url 'registro' %}';"></button>
</div>

</form>
<div class="copy-text"><a href="#">¿Olvidaste tu Contraseña? Clic AQUÍ</a></div>
    </div>
</div>
</div>
</section>

{% endblock %}

REGISTROUSUARIOS.HTML (注册用户)

{% extends "master.html" %}
{% load static %}
{% block RegistroUsuarios %}

<section class="register-block">
    <div class="registercontainer">
<div class="row">
    <div class="col-md-12 register-sec">
        <h2 class="text-center">Registro Usuarios</h2>
        <form method="POST" class="register-form">


<div class="col-6">
            {% csrf_token %}
            {{form.as_p}}
</div>

<div class="form-check col-md-6">
<button type="submit" class="btn btn-register float-right">Registrarse</button>
</div>

</form>
</section>
{% endblock %}

P.S:很抱歉,如果代码是西班牙语

编辑:我已经尝试删除数据库和迁移文件,并再次执行makemigrationsmigrate

编辑2:我列出了我已经注册的所有用户,并且他们已经正确注册,因此看来问题出在登录中。我还使用django命令创建了superuser,它可以正常工作!但是我仍然找不到错误

0 个答案:

没有答案