カスタム ユーザー モデルを使用したくない場合は、フィールドをサブクラス化UserCreationForm
し、オーバーライドすることができます。username
from django.contrib.auth.forms import UserCreationForm
class UserCreationForm(UserCreationForm):
class Meta:
model = User
fields = ('first_name', 'last_name', 'username',)
username = forms.EmailField(label='Email', max_length=255)
def save(self, commit=True):
user = super(UserCreationForm, self).save(commit=False)
user.email = user.username
user.save()
return user
これUserCreationForm
で、電子メール フィールドをユーザー名に自動的に設定して同期を維持することに加えて、ユーザー名の電子メール アドレスを検証して使用する ができました。これはフィールドを設定しませんpassword
。これも行う必要があります。必要に応じて変更してください。