gpt4 book ai didi

python - 更改 Django 1.11 中的用户名 max_length (django.contrib.auth)

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

我的用户使用电子邮件地址作为用户名,这在 Django 1.9 中导致了问题,因为 用户名 长度最大为 30 个字符。

这是 supposed to be fixed我相信 Django 1.10 具有 150 个字符的限制(尽管它看起来像 the docs 实际上是说对于某些数据库来说 max_length 应该能够达到 191 个字符)。

我升级到 Django 1.11,但用户名似乎仍然限制为 30 个字符。是因为我需要在某处设置 max_length 的值吗?如果是这样,我在哪里设置它(一个例子就很好)?如果不是,如何增加最大长度?

这是我目前的观点。

def register(request):
alreadyRegistered = False
invalidID = False
context_dict = {}
if request.method == 'POST':
# Gather the username and password provided by the user.
# This information is obtained from the login form.
Userid = request.POST['username']
Userid = Userid[0:29] # horrible work-around that has to change
if User.objects.filter(username=Userid).count() > 0:
alreadyRegistered = True
else:
isGU = 1 > 0 # this will always = TRUE for now
if isGU or isEA:
firstname = request.POST['firstname']
lastname = request.POST['lastname']
email = Userid
password = request.POST['password']
user = User.objects.create_user(Userid, email, password)
user.first_name = firstname
user.last_name = lastname
user.save()
registered = True
user = authenticate(username=Userid, password=password)
login(request, user)
return HttpResponseRedirect('/studentprogress/')
else:
invalidID = True

context_dict['alreadyRegistered'] = alreadyRegistered
context_dict['invalidID'] = invalidID
return render(request,
'studentprogress/register.html', context_dict)

最佳答案

允许自定义用户名字段长度的一种方法是使用自定义用户模型。文档在这里:https://docs.djangoproject.com/en/1.11/topics/auth/customizing/#specifying-a-custom-user-model

AbstractBaseUser 扩展您的自定义用户模型它提供了使用 Django 身份验证所需的方法。

基本上,您可以使用所需的数据创建模型,并在模型中定义所需的字段。在您的情况下,您可能需要设置 USERNAME_FIELDEMAIL_FIELD与模型中的字段相同。

关于python - 更改 Django 1.11 中的用户名 max_length (django.contrib.auth),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44421607/

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