Django:使用first_name.last_name创建一个干净的用户名
与其使用花哨的Django:使用first_name.last_name创建一个干净的用户名,django,django-forms,django-authentication,Django,Django Forms,Django Authentication,与其使用花哨的用户名,不如使用first\u name.last\u name格式的规范化用户名 使用这种用户名创建新用户很简单 username = cleaned_data.get('first_name') + "." + cleaned_data.get('name') 但清洁这两个字段以使其包含以下内容的最佳方法是什么: 无空格,例如:Théodore de Banville 无口音,例如:拉法尔·勒布朗德 还有其他有问题的字符吗 我想使用re和: 但这还不够吗 编辑:以下是我当前的
用户名
,不如使用first\u name.last\u name格式的规范化用户名
使用这种用户名创建新用户很简单
username = cleaned_data.get('first_name') + "." + cleaned_data.get('name')
但清洁这两个字段以使其包含以下内容的最佳方法是什么:
re
和:
但这还不够吗
编辑:以下是我当前的解决方案:
fname = unicode(self.cleaned_data['first_name'])
fname = unidecode(fname)
fname = slugify(fname)
name = unicode(self.cleaned_data['last_name'])
name = unidecode(name)
name = slugify(name)
username = fname + "." + name
这就是主要的功能,但是使用
unidecode()
是一个巨大的改进。我唯一要做的更改是先应用unidecode()
,然后删除空格。这就是主要的功能,但是使用unidecode()
是一个巨大的改进。我唯一要做的更改是先应用unidecode()
,然后删除空格。不要忘记,当第二个John Smith注册时,您必须在某个时候使它们唯一。不要忘记,当第二个John Smith注册时,您必须在某个时候使它们唯一。
fname = unicode(self.cleaned_data['first_name'])
fname = unidecode(fname)
fname = slugify(fname)
name = unicode(self.cleaned_data['last_name'])
name = unidecode(name)
name = slugify(name)
username = fname + "." + name