1

ユーザー名なしでユーザーを作成する方法はありますか? first_name、last_name、password、email でこれをやってみました。しかし、エラーが発生しました:

TypeError at /accounts/register/
create_user() takes at least 2 arguments (3 given)

そこで、作成を検索したところ、django にはユーザー名が必要であることがわかりました。しかし、他の方法があることを願っています。もしあれば、誰でも私を案内してもらえますか。ありがとうございました。

4

2 に答える 2

3

カスタム ユーザー モデルを使用したくない場合は、フィールドをサブクラス化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。これも行う必要があります。必要に応じて変更してください。

于 2013-08-19T13:52:36.270 に答える