繁体   English   中英

django all-auth 不区分大小写的用户名

[英]django all-auth case insensitive username

我正在使用Django AllAuth并且正在为应用程序的用户制作一个简单的个人资料页面。 这可以通过输入用户的用户名来实现。

# urls.py
path('<str:username>/', UserDetail.as_view(), name='user-detail'),

# views.py
class UserDetail (DetailView):
    template_name = 'dashboard/user.html'
    model = User

    def get_object(self):
        return get_object_or_404(User, username=self.kwargs['username'])

我的想法是它会像 twitter 一样工作。 用户创建一个帐户用户名,例如MyUsername ,它看起来很好区分大小写并且可搜索不区分大小写。 因此,如果有人搜索用户,他们可以输入不区分大小写的用户名,它总是会以更好看的区分大小写的样式找到正确的用户。

那是我意识到用户名的用户: MyUsername应该是myusername实际上是 2 个不同的用户。 天真地让我想否则我想。


Django AllAuth 确实有我可以实现的ACCOUNT_PRESERVE_USERNAME_CASING (=True)但这只会使所有用户名都是小写的,而我只是想让用户名不区分大小写唯一,同时仍然显示更好的区分大小写的版本。

处理使用户名不区分大小写唯一但仍向用户显示区分大小写格式的最佳方法是什么?

我建议ACCOUNT_PRESERVE_USERNAME_CASING = False并在单独的字段中保留“可显示”版本的用户名(在注册时设置)。 如果更改了用户名,则两个名称也应同时更新(一个内部用于身份验证处理,另一个用于显示)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM