gpt4 book ai didi

python - 使用自定义用户模型进行身份验证

转载 作者:太空宇宙 更新时间:2023-11-03 16:42:19 25 4
gpt4 key购买 nike

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

我注册成功,但无法登录,无法验证我的用户身份。有什么方法可以验证我的用户身份,或者如何登录?目前我正在通过

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

但我想通过以下方式登录

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

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

模型.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)

View .py

def register(request):
context = RequestContext(request)
registered = False
print "inside register view"
if request.method == 'POST':
consultant_form = ConsultantsForm(data=request.POST)
if consultant_form.is_valid():
consultant = consultant_form.save(commit=False)
consultant.save()
registered = True
else:
print consultant_form.errors
else:
consultant_form = ConsultantsForm()
return render_to_response(
'register.html',
{'consultant_form': consultant_form, 'registered': registered},
context_instance=RequestContext(request))


def login_user(request):
context = RequestContext(request)
if request.method == 'POST':
username = request.POST['username']
password = request.POST['password']
print type(username)
try:
user = Consultants.objects.get(Q(username= username) & Q(password= password))
user = authenticate(username=username, password=password)
if user.is_active:
user.backend = 'django.contrib.auth.backends.ModelBackend'
login(request, user)
a= request.user.username
return HttpResponse("welcome......you are succesfuly log in")
else:
return HttpResponse("Your account is disabled.")
except ObjectDoesNotExist:
return HttpResponse("INvalid User")

最佳答案

Note:I don't want to use django default User Model For it Please help me in this. Thanks inadvance

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

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

解决此问题的另一种方法是创建一个包含所有这些额外字段的配置文件模型,并使用 OneToOneField 到基本用户模型,并通过 Django ORM 进行身份验证。

关于python - 使用自定义用户模型进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36690147/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com