【发布时间】:2011-05-24 05:39:22
【问题描述】:
我的网站最好使用 first_name.last_name 形式的规范化用户名,而不是花哨的 username。
用这种用户名创建新用户很简单
username = cleaned_data.get('first_name') + "." + cleaned_data.get('name')
但是清理这两个字段以使其包含的最佳方法是:
- 没有空格,例如:Théodore de Banville
- 没有重音例如:Raphaël LeBlond
- 任何其他有问题的字符
我想过用re和unidecode:
username = re.sub(r"\s+", "", username).lowercase
username = unidecode(username)
但这够了吗?
编辑:这是我目前的解决方案:
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
【问题讨论】:
-
别忘了,当第二个 John Smith 注册时,您必须在某个时候使它们独一无二。
标签: django django-forms django-authentication