2

私はこのスニペットを使用しています。これにより、ユーザーは自分のアプリに登録するためにメールアドレスを入力するだけで済みます:http://djangosnippets.org/snippets/686/

物事はほぼ完璧に機能しています。問題は、ユーザーが30文字を超えるメールアドレスを持っている場合です。「この値が最大30文字(40文字)であることを確認してください」というメッセージが表示されます。エラー。

これは、ユーザー名が30文字のみであると想定されているためです。ユーザー名を長くすることができることをDjangoに伝える簡単な方法はありますか?これにはかなり簡単なオーバーライドがあるはずです。

4

2 に答える 2

1

これは実際にはまったく単純ではありません。これには、 User モデルをサブクラス化し、それをどこでも使用する必要があります。この場合、これを行う必要はありませんでしたが、管理インターフェイスで重大な問題が発生する可能性があります。また、django のソースを編集してそれを引き出すこともできます (ick)。

または、このソリューションを使用することも できます: django の auth_user.username を varchar(75) にすることはできますか? どうすればそれができますか?

かなり醜いですけどね。

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

于 2011-07-15T17:31:28.010 に答える
0

うまくいけば、このソリューションが役立つはずです: http://www.micahcarrick.com/django-email-authentication.html

于 2011-07-15T17:27:11.797 に答える