2017-11-13 1 views
0

Djangoユーザーモデルを拡張し、会社と呼ばれるForeignKeyFieldを追加しました。今私はまた、デフォルトのユーザー作成フォームを変更する必要があります。私がこれまで試したことだった。djangosのデフォルトユーザー作成フォームを変更するには

はデフォルトUserCreationFormフォームから継承する新しいフォームの作成:

class MyUserCreationForm(UserCreationForm): 
    company = forms.ModelChoiceField(queryset=Company.objects.all()) 

    class Meta: 
     model = MyUser 
     fields = ('username', 'company') 

私の拡張ジャンゴ管理者にそれを追加する:これは動作しません

class ExtendedUserAdmin(UserAdmin): 
    add_form = MyUserCreationForm 
    ... 
admin.site.register(MyUser, ExtendedUserAdmin) 

。私は何が欠けていますか?

答えて

0

あなたはadd_formを変更する必要はありません。あなたがする必要があるのは、ExtendedUserAdminに以下を追加することです:

def __init__(self, model, admin_site): 
    super().__init__(model, admin_site) 
    self.add_fieldsets[0][1]['fields'] = ('username', 'password1', 'password2', 'company') 
関連する問題