Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django:使用first_name.last_name创建一个干净的用户名_Django_Django Forms_Django Authentication - Fatal编程技术网

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')
但清洁这两个字段以使其包含以下内容的最佳方法是什么:

  • 无空格,例如:Théodore de Banville
  • 无口音,例如:拉法尔·勒布朗德
  • 还有其他有问题的字符吗
  • 我想使用
    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