gpt4 book ai didi

Django不区分大小写的登录,混合大小写的用户名

转载 作者:行者123 更新时间:2023-12-04 22:45:39 29 4
gpt4 key购买 nike

我正在尝试对 Django 应用程序进行不区分大小写的登录,而不更改原始用户名大小写。根据我的研究,最好的方法是创建一个相关字段,在注册时以小写形式存储用户名。无需重新发明用户模型,这是一个简单的解决方案,对吗?我的困境:如何在创建对象时从一个模型中获取数据、更改它并将其保存在另一个模型中?

这是 中的内容模型.py :

from django.db import models
from django.contrib.auth.models import User

class UserProfile(models.Model):
user = models.OneToOneField(User)
lc_n = User.username
lc_n = lc_n.lower()
lowercase_name = models.CharField(max_length=30, default=lc_n)

运行时 python manage.py makemigrations有以下错误:
AttributeError: type object 'User' has no attribute 'username'
用户确实具有该属性,但无法通过这种方式访问​​它。

请原谅我,因为这肯定包含一些简单的基本缺陷。任何可能提供的支持将不胜感激。

最佳答案

您不需要任何额外的模型来实现不区分大小写的登录。 Django 通过 iexact 支持不区分大小写的过滤运算符(operator):

user = User.objects.get(username__iexact=name)

关于Django不区分大小写的登录,混合大小写的用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27673410/

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