2010-06-01 4 views
1

를 변경할 때 나는 장고 사용자 모델과 같이 양식을 상속 :상속 비밀번호

내가 관리자로 이동이 모델에 항목을 추가
from django.db import models 
from django.contrib.auth.models import User, UserManager 
from django.utils.translation import ugettext_lazy as _ 

class NewUserModel(User): 
    custom_field_1 = models.CharField(_('custom field 1'), max_length=250, null=True, blank=True) 
    custom_field_2 = models.CharField(_('custom field 2'), max_length=250, null=True, blank=True) 

    objects = UserManager() 

, 그것은 잘 저장, 그러나이 텍스트가있는 "비밀번호"필드 아래에 "[algo] $ [salt] $ [hexdigest]를 사용하거나 비밀번호 변경 양식을 사용하십시오." "비밀번호 변경 양식"링크를 클릭하면 이 오류 난이 문제를 해결하기 위해 할 수있는 일

Truncated incorrect DOUBLE value: '7/password' 

?

답변

1

장고 사용자 모델을 확장하는 가장 좋은 방법은 새 프로필 모델을 만들고 AUTH_PROFILE_MODULE 설정을 통해이를 식별하는 것입니다. http://www.b-list.org/weblog/2006/jun/06/django-tips-extending-user-model/http://docs.djangoproject.com/en/dev/topics/auth/#storing-additional-information-about-users

이 방법을 사용하면 지정된 사용자에 대한 관련 모델을 검색하는 사용자 인스턴스에 get_profile() 메서드가 추가됩니다.

+0

하지만 여러 다른 프로필 유형을 제공하기 위해 사용자 모델을 확장해야하므로 현재 사용자 프로필을 바꾸지 않으려합니다. – Jerome

+0

해당 요구 사항이 질문 범위를 크게 변경합니다. 여러 프로필 요구 사항을 자세히 설명하는 새로운 기능. –

0

사용자 모델을 확장하기 위해 상속을 사용하는 doable (한 번하고 후회했습니다)이 최선의 방법은 아니지만. 나는 당신이 Chris의 조언을 듣고 1-1의 관계로 User 모델을 확장하는 것이 "표준"이며 "지원되는"방법이며 다시 사용할 수있는 응용 프로그램이 사용자 프로필을 다루는 방식이기 때문에 제안 할 것입니다. 그렇지 않으면 상속을 통해 인증 백엔드를 구현해야 할 경우 인증 백엔드를 구현해야합니다. 따라서 반드시해야한다면 this을 참조하십시오. 그러나 경고를 받으면 나중에 다른 문제를 우연히 발견하게됩니다.