2013-12-23 7 views
1

이전 버전의 장고 등록에서 모듈의 1.0 버전으로 이전하려고합니다.장고 등록 버전 1.0에서 기본 등록 양식을 오버 라이딩하는 방법은 무엇입니까?

정상적인 등록 양식을 작성한 사용자 지정 양식으로 재정의하고 있습니다. 이 동작은 Django-registration 1.0에서 작동하지 않으며 다시 작동하게하려고합니다. 그러나 지금까지 성공하지 못했습니다. 이건 내 urls.py 파일이 모습입니다 같은 :

from registration.views import RegistrationView 
from myApp.forms import * 

<...SNIPPED...> 

url (
    r'^accounts/register/$', 
    RegistrationView.as_view(), 
    { 
     'form_class': extendedRegistrationForm, 
     'backend': 'registration.backends.default.DefaultBackend', 
    } 
) 

이 같은을 myApp의 forms.py는 모습입니다 :이있다

from registration.forms import RegistrationFormUniqueEmail 

<...SNIPPED...> 

class extendedRegistrationForm(RegistrationFormUniqueEmail): 
    firstName = forms.CharField(
     widget=forms.TextInput(), 
     label="First Name", 
     required=False, 
    ) 

내가보고하고 동작 : 등록 화면에서 자신 있습니다 사용자 이름, 전자 메일 주소, 암호, 암호 확인을위한 입력 상자 및 필드 레이블. 그러나 "이름"에 대한 입력 상자 및 필드 레이블이 나타나는 양식의 슬롯은 완전히 비어 있습니다.

urls.py 및 forms.py를 수정하여 내 extendedRegistrationForm의 필드가 화면에 제대로 포함되도록하는 방법은 무엇입니까? 거의 동일한 코드가 이전 버전의 Django-Registration에서 잘 작동했습니다.

+0

어떻게 firstName 필드를 데이터베이스에 저장합니까? –

답변

3

기본적으로 기본 백엔드를 사용하려면 기본 백엔드 모듈에서보기를 가져옵니다.

from registration.backends.default.views import RegistrationView 

둘째, 당신은 RegistrationView을, 서브 클래스 또는 as_view()에 인수로 전달하여 form_class을 설정할 수 있습니다. 자세한 내용은 CBV docs을 참조하십시오.

url (
    r'^accounts/register/$', 
    RegistrationView.as_view(form_class=extendedRegistrationForm), 
) 
+0

registration.backends.views.default에 대한 가져 오기 오류가 발생합니다. 하위 모듈 "전망"이없는 것 같습니다. 여기에 증거보기 : https://gist.github.com/anonymous/8102337 –

+1

가져 오기가 잘못되었습니다. 나는 지금 그것을 고쳤다. – Alasdair

+0

감사합니다. 일했다! –