1

username我的网站最好使用first_name.last_name形式的规范化用户名,而不是花哨。

使用这种用户名创建新用户很简单

username = cleaned_data.get('first_name') + "." + cleaned_data.get('name')

但是清理这两个字段以使其包含的最佳方法是:

  1. 没有空格 ex: Théodore de Banville
  2. 没有口音前:Raphaël LeBlond
  3. 任何其他有问题的字符

我想过使用reand 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
4

1 回答 1

1

这主要是什么slugify(),但使用unidecode()是一个巨大的改进。我要做的唯一更改是先应用unidecode(),然后删除空格。

于 2010-12-12T13:20:31.243 回答