Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从自定义模型登录django_Python_Django_Authentication_Django Authentication - Fatal编程技术网

Python 如何从自定义模型登录django

Python 如何从自定义模型登录django,python,django,authentication,django-authentication,Python,Django,Authentication,Django Authentication,这是model.py class SignupUser(models.Model): name = models.CharField(max_length=100) username = models.CharField(max_length=20) email = models.CharField(max_length=100) password = models.CharField(max_length=20) def __str__(self):

这是model.py

class SignupUser(models.Model):
    name = models.CharField(max_length=100)
    username = models.CharField(max_length=20)
    email = models.CharField(max_length=100)
    password = models.CharField(max_length=20)

    def __str__(self):
        return self.username
这是通过此注册用户登录我的帐户页面的my views.py

def login_page(request):
    '''
    what code i write here ??
    '''

    context = {'form': SignupForm}
    return render(request, 'signup.html', context)
请解决我的登录页面方法上的my views.py代码。我在这里写什么来登录此用户配置文件

from django.contrib.auth import logout, login as auth_login, authenticate
import logging as L

def login_page(request):
    post_data = request.POST
    user = authenticate(username=post_data['email'], password=post_data['password'])
    if user is None:
        L.warning('Authentication error wrong credentials')
        return HttpResponseRedirect('/')
    else:
        auth_login(request, user)
        L.INFO('Authentication ok')
        return HttpResponseRedirect('/')
在这里,您可以使用django内置程序进行登录和注销,您的代码应该是这样的


在这里,您可以使用django内置程序进行登录和注销,您的代码应该是这样的

我不确定您是否以正确的方式进行了此操作。Django已经提供了一些机制来创建一些自定义用户模型

您应该创建一个扩展django.contrib.auth.models.AbstractUser的模型,如中所述

您可以看到该类已经具有您需要的所有字段

拥有此模型后,应在设置文件中将其注册为用户模型

然后,您可以使用Django实现的身份验证系统,您应该不会有问题

如果AbstractUser提供的字段不是您要查找的字段,您可以后退一步。如果需要权限系统,则需要从django.contrib.auth.base_user.AbstractBaseUser重写,也可能从django.contrib.auth.models.PermissionsMixin重写。 只要稍加修改,Django的内置视图和表单就可以与您的新模型配合使用


管理初始用户模型需要大量的配置,而且可能很难在一开始就实现。但是,通过花时间了解所有这些类和配置键是如何协同工作的,您应该不会有任何问题。别忘了检查auth系统的文档。它很重,但只要稍加努力,你就可以在里面找到你需要的一切。

我不确定你是不是用正确的方法做的。Django已经提供了一些机制来创建一些自定义用户模型

您应该创建一个扩展django.contrib.auth.models.AbstractUser的模型,如中所述

您可以看到该类已经具有您需要的所有字段

拥有此模型后,应在设置文件中将其注册为用户模型

然后,您可以使用Django实现的身份验证系统,您应该不会有问题

如果AbstractUser提供的字段不是您要查找的字段,您可以后退一步。如果需要权限系统,则需要从django.contrib.auth.base_user.AbstractBaseUser重写,也可能从django.contrib.auth.models.PermissionsMixin重写。 只要稍加修改,Django的内置视图和表单就可以与您的新模型配合使用


管理初始用户模型需要大量的配置,而且可能很难在一开始就实现。但是,通过花时间了解所有这些类和配置键是如何协同工作的,您应该不会有任何问题。别忘了检查auth系统的文档。它相当繁重,但只要稍加努力,您就可以在其中找到所需的一切。

我认为您无法做到这一点,因为您使用的是一个单独的表来存储用户信息。如果你想让他们登录,那么这些用户需要在任何一个模型中创建,或者你可以按照文档自己编写一个。我不认为你可以这样做,因为你正在使用一个单独的表来存储用户信息。如果您希望他们登录,则需要在任一模型中创建这些用户,或者您可以根据文档自行编写。我不想使用自定义用户模型我不想使用自定义用户模型