2011-11-08 3 views
2

장고에서 사용자 admin을 변경하려고합니다. 내 프로젝트에는 이메일 주소, 이름 및 성이 필요합니다. 내 사용자 관리자를 다음과 같이 변경했습니다.django에서 사용자 관리 양식 확장

암호를 사용하여 사용자를 저장할 때마다 문제는 해싱없이 표시됩니다. 문제는 암호 필드를 새 양식으로 해시해야한다는 것입니다. 그러나 오래된 형태가 그렇습니다. 그래서 제가 옛 형태를 확장 할 수있는 방법이 있습니까?

답변

5

UserChangeForm을 하위 클래스로 django.contrib.auth.forms에 서브 클래 싱하고 forms.ModelForm을 서브 클래 싱하지 않고 동작을 사용자 정의 할 수 있습니다.

from django.contrib.auth.forms import UserChangeForm 

class MyUserChangeForm(UserChangeForm): 
    def __init__(self, *args, **kwargs): 
     super(MyUserChangeForm, self).__init__(*args, **kwargs) 
     self.fields['email'].required = True 
     self.fields['first_name'].required = True 
     self.fields['last_name'].required = True 

class UserAdmin(admin.ModelAdmin): 
    form = MyUserChangeForm 

admin.site.unregister(User) 
admin.site.register(User, UserAdmin) 

위의 내용은 암호 해시를 표시하고 암호 변경 양식에 연결하는 사용자 암호의 기본 동작을 사용합니다. 이를 수정하려면 SetPasswordForm을보고 장고 관리자에서 암호가 설정되는 방법을 확인하십시오.

관련 문제