如何使用自己的模型手动登录方法? Django的

时间:2017-01-20 19:52:49

标签: django-models django-forms django-templates django-views

我想用我自己的模型手动登录方法我阅读了文档,但我不明白如何使用 这样:

from django.contrib.auth import authenticate, login

def my_view(request):
username = request.POST['username']
password = request.POST['password']
user = authenticate(username=username, password=password)
if user is not None:
    login(request, user)
    # Redirect to a success page.
    ...
else:
    # Return an 'invalid login' error message.
    ...

这是我的模特Usuario:

class Usuario(models.Model):

id_usuario = models.AutoField(primary_key=True)
nombre = models.CharField(max_length=255)
correo_electronico = models.EmailField()
direccion = models.CharField(max_length=255)
telefono = models.CharField(max_length=50)
usuario = models.CharField(max_length=255)
contrasenia = models.CharField(max_length=255, null=True ,blank=True)
id_perfil = models.ForeignKey(Perfil, on_delete=models.CASCADE)
fecha_creacion =  models.DateTimeField(auto_now_add=True)
fecha_modificacion = models.DateTimeField(null=True)
fecha_cancelacion = models.DateTimeField(null=True)
status = models.CharField(max_length=50)

def __str__(self):
    return '{}'.format(self.nombre)

1 个答案:

答案 0 :(得分:0)

您的视图旨在用于默认身份验证系统。但是,考虑到您的用户模型,我认为您正在寻找自定义身份验证系统。最好看Django docs。简而言之,您需要自定义模型,表单和后端。您还应该确保您的settings.py指定Django应该查找哪个后端。