1

空想の代わりに、私のウェブサイトではfirst_name.last_nameusernameの形式で正規化されたユーザー名を使用する方がよいでしょう。

この種のユーザー名で新しいユーザーを作成するのは簡単です

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

しかし、それらが含まれるように両方のフィールドをきれいにする最良の方法は何ですか:

  1. スペースなし 例: Théodore de Banville
  2. アクセントなし 例: Raphaël LeBlond
  3. その他問題のある文字

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
4

1 に答える 1

1

それがほとんどの場合slugify()ですが、の使用はunidecode()大幅に改善されています。私が行う唯一の変更は、unidecode()最初に適用してから、スペースを削除することです。

于 2010-12-12T13:20:31.243 に答える