でこのエラー メッセージが表示されますemail field
が、組み込みの を使用していdjango auth system
ます。それをオーバーライドする簡単な方法はありますか。ユーザーが登録すると、組み込みユーザー システム内の組み込みフィールドに電子メール アドレスが追加されます。
サイトの性質上、30文字以上に拡張していただけると助かります。
でこのエラー メッセージが表示されますemail field
が、組み込みの を使用していdjango auth system
ます。それをオーバーライドする簡単な方法はありますか。ユーザーが登録すると、組み込みユーザー システム内の組み込みフィールドに電子メール アドレスが追加されます。
サイトの性質上、30文字以上に拡張していただけると助かります。
That is one of the issues with using email addresses for user names in Django. Many, many emails are over 30-characters. One common way to address this issues is using a custom "Authentication Backend" for email authentication. Using your own backend you can authenticate a user based on the email
field instead of the username
field. You can then generate the username based on that email address or using random generated usernames.
You can read more about this approach on my blog post Django Authentication using an Email Address.
正しい方法ではないかもしれませんが、私のプロジェクトでは、ユーザーのメール サイズを南に増やしました。サンプル:
>> ./manage.py schemamigration auth --initial && ./manage migrate auth --fake
次に、models.py に追加しました:
from django.contrib.auth.models import User
field = User._meta.get_field('email')
field.max_length = 254
field = User._meta.get_field('username')
field.max_length = 254
今:
>> ./manage.py schemamigration auth --auto
>> ./manage.py migrate auth