使用自定义用户模型进

时间:2016-04-18 09:30:21

标签: python django

我想为只有5个字段的自定义用户进行登录和注册:用户名,姓名,密码,linkedin ID和手机号。

我成功注册但是我遇到了登录问题,我无法验证我的用户身份。 有没有办法验证我的用户,或者我如何登录? 目前我正在通过

登录
 email_to_list = ['"John, A" <jphn@abc.com>', '"Peter, B" <peter@def.com>']

但我想通过

登录
user = Consultants.objects.get(Q(username= username) & Q(password= password))

注意:我不想使用django默认用户模型。 请帮帮我。 提前谢谢。

models.py

user=authenticate(username=username,password=password)

views.py

class Consultants(models.Model):
    first_name=models.CharField(max_length=255,blank=True,null=True)
    username=models.CharField(max_length=255,blank=True,null=True)
    password=models.CharField(max_length=50,blank=True,null=True)
    mobile_no=models.CharField(max_length=255,blank=True,null=True)
    linkedin_id=models.CharField(max_length=255,blank=True,null=True)
    is_active=models.BooleanField(default=False)

2 个答案:

答案 0 :(得分:1)

  

注意:我不想使用django默认用户模型为它请帮忙   我在这。谢谢inadvance

您的Consultants类是否继承自Django基类用户类?

authenticate()函数用于验证基本用户模型,在创建用户时可能没有为用户设置密码?

另一种方法是创建一个Profile模型,其中包含所有这些额外字段,其中OneToOneField为基本用户模型,并通过Django ORM进行身份验证。

答案 1 :(得分:0)

我认为继承django嵌入式用户类更好,您可以按照以下步骤操作:

  • AbstractBaseUserPermissionsMixin
  • 扩展您的自定义用户类
  • settings.py中分配并填写此配置:

    AUTH_USER_MODEL ='YOUR_CUSTOM_CLASS_IN_FULL_QUALIFIED_NAME',例如:'your_app_name.Consultants'

Voila,您可以使用django默认用户crud,也可以使用身份验证