2011-02-09 5 views
4

내 프로젝트 중 하나에 django-registration (참조 : https://bitbucket.org/ubernostrum/django-registration)을 사용하고 있습니다. 장고 등록에 대한 표준 설정은 registration라는 폴더에있는 템플릿을 urls.py 파일장고 등록보기 사용자 정의

(r'^accounts/', include('registration.urls')) 

에 아래에 코드를 추가하고 또한 사용자 정의 할 수 있습니다.

위의 코드는 등록, 로그인 및 비밀번호 복구에 대한 링크를 만드는 것입니다. 그러나 내 프로젝트에는 일반적으로 내보기에 추가 할 다른 기능이 있습니다. 그래서 그냥 include('registration.urls')을 추가하면 해당 장고 등록 양식이 포함 된보기를 사용자 지정하는 방법이 없습니다.

보기에서 django-registration이 사용하는 양식을 호출하여보기에 몇 가지 추가 할 수있는 방법이 있습니까?

+0

내가 맞다면 등록 양식을 사용자 정의하고 싶습니다. 그렇다면 앱의 저장소에서 코드를 복사하고 모듈에서 필요한 변경을하십시오 ....... plz보다 답장을 보내십시오. – Prateek

+0

양식을 사용자 정의 할 필요가 없습니다. 작성하려는보기로 양식을 가져와야합니다. 예를 들어 등록 양식을 표시 할 때 특정 유형의 추적을 수행 할 사용자 정의 함수 (동일한보기에서)를 추가 할 수도 있습니다. – avatar

답변

6

등록 양식은 등록 백엔드에서 제공합니다. 을 확인하십시오.

클래스를 반환하는 get_form_class(request) 메서드가 있습니다. 새 백엔드를 만들고 DefaultBackend에서 상속 받고 get_form_class() 메서드를 재정 의하여 새로운 양식 클래스를 반환하면됩니다.

등록 앱의 기본 동작을 변경하는 것 외에는 맞춤 백엔드를 제공하여 거의 모든 작업을 수행 할 수 있습니다. custm 백엔드를 제공하는 방식으로 뷰를 근본적으로 사용자 정의해야한다면 authn 또는 users app을 만들고 django 등록에서 비트를 가져와 유용하다고 생각하면됩니다. 예를 들어, registration 앱 네임 스페이스 내에 기본 모델과 관리자를 유지하면서 새 앱에서 맞춤 내부 백엔드에 맞춤형 백엔드를 연결할 수 있습니다.

+0

너무 많이 묻지 않으면 실제 사례를 제공해주세요. 보기에서 등록 양식을 가져 오거나 로그인 양식을 가져오고 싶다면 정확히 내가 할 일을 만들고 싶습니다. 양식 자체를 사용자 정의하고 싶지 않습니다. 일부 기능을 추가하려고합니다. 내보기가 호출되면 등록 양식이나 다른 인증 양식과 함께 기능이 표시됩니다. 고맙습니다! – avatar

+3

물론 할 수 있습니다. 여기서는 등록 백엔드를 클래스 기반보기 (더 극단적 인 예)로 병합 한 요지 (https://gist.github.com/819235)를 삭제했습니다. 각 등록 프로세스의 일반적인 대부분은'RegistrationProfile' 관리자에서 정의됩니다. 당신은 장고 등록에서 제공되는 모델과 매니저를 사용하고 있음을 알게 될 것이지만, 제 자신의 행동을 제공하고 있습니다. 백엔드 용 API는 상당히 유연하므로 신호를 가로 채고 클래스 MyBackend (DefaultBackend)를 제공하여 대부분의 작업을 수행 할 수 있습니다. 그러나 이것은 가능한 다른 것을 보여주기위한 것입니다. –

관련 문제