2010-06-15 4 views
2

이전에는 지금 사용하지 않는 django-registration의 이전 버전을 사용하고 있습니다. 내 서버가 파이썬 플러그인을 설치할 수 없기 때문에 별도의 장고 응용 프로그램으로 '등록'을 사용해야합니다. 이제 내 질문은 등록을 django-app로 실행하려면 무엇을 수정해야합니까? 그냥 장고 프로젝트 카탈로그에 '등록'을 복사하고 설정에 추가하면 제대로 작동합니까? 이전에는 '백엔드'가 정의되지 않았으므로 이제는 백엔드 get_backend 함수를 사용하는 파일에 'path'를 인수로 사용합니다. 나는이 경로가 URL을 통해 전송 된 것 같아요? 클래스 활성화 및 등록과django-registration 설치 및 사용

 url(r'^activate/(?P<activation_key>\w+)/$', 
      activate, 
      {'backend': 'registration.backends.default.DefaultBackend'}, 
      name='registration_activate'), 

이 카탈로그 내부도 DefaultBackend 클래스와 초기화 파일이있다.

http://paste.pocoo.org/show/225790/

그들은 둘 다 사용 신호

. 나는 그 신호를 어떤 식 으로든 귀찮게해야합니까? (나는 아직도 그들이 사용 된 것을 얻지 못한다). 마지막으로. 이전에 등록 후 이런 식으로 테 주어진 success_url 중 하나 또는 설정 템플릿을 리디렉션했다 : 이제
return HttpResponseRedirect(success_url or reverse('registration_complete')) 

이에 대한 책임을 코딩하는 것은 같습니다

 if success_url is None: 
      to, args, kwargs = backend.post_registration_redirect(request, new_user) 
      return redirect(to, *args, **kwargs) 
     else: 
      return redirect(success_url) 

과 post_registration_redirect : 그래서

def post_registration_redirect(self, request, user): 
    """ 
    Return the name of the URL to redirect to after successful 
    user registration. 

    """ 
    return ('registration_complete',(), {}) 

을 여전히 'registration_complete'로 리디렉션되는 경우 왜 이렇게 변경 되었습니까? args와 kwargs는 비어 있습니다. 그래서 왜 귀찮게합니까?

답변

1

상황이 훨씬 더 간단합니다. Django 응용 프로그램 (등록과 같은)은 보통의 Python 패키지이며 그 자체로 가져올 수 있습니다. 그 의미는 등록이 이미 파이썬 경로에있는 에 살 수 있다는 것입니다. 종종 가장 간단한 장소는 루트 프로젝트 디렉토리에 있습니다.

거기 백엔드 인수는 단지 파이썬 가져 오기 경로를 취합니다. 사람들이 Django-Registration을 확장하여 원하는 경우 사용자 정의 백엔드를 사용할 수 있도록 인수가 추가되었습니다.

파이썬 경로에 등록 디렉토리를 넣으면 기존 문자열이 잘 작동합니다.

+0

나는 보통 설치 부분을 생략 할 수 있다는 것을 알고있다. 이 상황에서 (백엔드 섹션의 일부 수정 때문에) 동일한 작업을 수행 할 수 있는지 또는 할 수 없는지 궁금했습니다. 감사 – owca

0

인용구 : 루트 액세스 권한이 없기 때문에

"Because my server does not allow me to install python plugins I need to 
use 'registration' as separate django application." 

이인가? virtualenv (자신의 블로그에 링크)을 사용하여 자신 만의 (완전히 쓸 수있는) 파이썬/장고 설치를 만들려고 했습니까? 또는 쓰기 권한이있는 장소에 쓰기 가능한 디렉토리를 만들고 거기에 장고 등록을 설치하고 PYTHON_PATH를 해당 위치로 지정하십시오.

IMO, "django-registration 설치"옵션에서 너무 빨리 포기하고 더 복잡한 "다른 서버에서 실행"옵션으로 이동 한 것처럼 보입니다.