2011-07-15 8 views
2

私は、ユーザーが唯一の私のアプリを登録するメールアドレスを入力する必要がありますすることができるよう、このスニペットを使用しています:http://djangosnippets.org/snippets/686/長くするDjangoのユーザ名

物事はほぼ完璧に働いています。問題は、ユーザーが30文字を超える電子メールアドレスを持っている場合です。私は "この値は最大30文字(40文字)を持つようにしてください"エラー。

これは、ユーザー名が30文字であるためです。 Djangoにユーザー名を長くするように伝える簡単な方法はありますか?これにはかなり単純なオーバーライドが必要なようです。

答えて

0

うまくいけば、このソリューションは、あなたを助ける必要があります。http://www.micahcarrick.com/django-email-authentication.html

+0

これはすばらしい記事ですが、私はまだ30文字のエラーが発生しています – Brenden

+0

手動でデータベースの列を更新しましたか? – sprezzatura

+0

私は列を手動で更新しませんでした。それは次のステップですか? – Brenden

1

これは実際には全く簡単ではありません。これには、Userモデルをサブクラス化し、どこでも使用する必要があります。このケースではこれを行う必要はありませんでしたが、Adminインターフェイスで重大な問題が発生する可能性があります。また、djangoのソースを編集してそれを取り除くこともできます(ick)。それはしかし、非常に醜い Can django's auth_user.username be varchar(75)? How could that be done?

、さらには、このソリューションを使用しています。

ユーザー名フィールドを使用するのではなく、電子メールフィールドを認証に使用する方が認証バックエンドを作成する方がよいでしょう。ユーザー名を入力するには(必要です)、ハッシュまたはUUIDを使用して、一意のランダムなユーザー名を生成するだけです。

+0

または、Djangoソースを編集できます! –

+0

メールアドレスを登録/認証しようとしていますが、ユーザー名の処理方法を理解できません。テンプレートからユーザー名を削除しましたが、必須フィールドであるためフォームは検証されません。私はカスタム登録バックエンドを作成してユーザーのハッシュとして生成しましたが、無効なフォームのために呼び出されることはありません。何か案は? – Raj

関連する問題